Flutter dotenv로 환경 나누기

이우길·2024년 3월 19일
0

flutter

목록 보기
2/8
post-thumbnail

Flutter DotEnv 설정하기

Goal

  • Flutter에서 env를 이용하여 환경변수 불러오기

개요

다른 언어들을 사용하다 보면 환경변수 설정을 코드 Level에서 정의하는 것이 아니라 .env파일을 구성하여 애플리케이션이 Load 될 때 읽어와 사용한다.

Flutter에서는 어떻게 하는지 간단히 알아보겠다.


How

역시 다른 언어들의 라이브러리와 동일하게 dotenv를 제공해주는 라이브러릴 쉽게 찾을 수 있었다.


pubspec.yaml에 라이브러리 추가하기

dependencies:
flutter:
    sdk: flutter
# ... 
flutter_dotenv: ^5.1.0

pubspec.yaml에 .env 파일을 assets에 추가하기

.env파일을 Flutter에 포함될 수 있도록 assets에 추가한다.

flutter:
  # ...  
  assets:
    - .env

main.dart에서 .env파일 로드하기

// --dart-define=SOME_VAR=SOME_VALUE
void main() async {
  // 1
  WidgetsFlutterBinding.ensureInitialized();

  // 2
  const envName = String.fromEnvironment('env', defaultValue: 'dev');


  // 3
  await dotenv.load(fileName: './env/env.$envName');


  runApp(const _App());
}
  1. WidgetsFlutterBinding.ensureInitialized();는 Flutter 프레임워크가 준비가 되어있는지 Check하는 코드이다. flutter_dotenv 라이브러리는 flutter 위에서 동작되다 보니 Flutter가 준비되어야 사용이 가능하기 때문이다.

  2. dotenv를 사용하는 면에서는 필수적인 코드는 아니지만 앱을 실행할 때 환경에 따라 다른 env를 사용하기 위해 정의하였다. String.fromEnvironment 코드를 통해 앱을 실행할 때 정의한 변수를 가져올 수 있으며 변수를 정의하는 방법은 아래와 같다.

flutter run --dart-define=SOME_VAR=SOME_VALUE --dart-define=OTHER_VAR=OTHER_VALUE

# or

flutter build --dart-define=SOME_VAR=SOME_VALUE --dart-define=OTHER_VAR=OTHER_VALUE
  1. flutter_dotenv 라이브러리를 이용하여 미리 정의한 환경변수 파일을 load한다.

사용하기

사용하는 곳에서는 아래와 같이 get을 이용하면 된다. 만약 NullSafe를 사용하고자 한다면 maybeGet을 이용하면 된다.

추가적으로 없을 때 default 환견변수를 fallback이라는 인자를 정의하여 더욱 안전하게 사용할 수 있다.

dotenv.get('환경변수 키 값');

dotenv.maybeGet('환경변수 키 값', fallback: null)

REFERENCES

profile
leewoooo

0개의 댓글