본문 바로가기
Flutter/Flutter Programming

Flutter에서 flutter_dotenv 패키지 사용법과 옵션

by Maccrey 2024. 7. 3.
728x90

Flutter 애플리케이션을 개발할 때, API 키나 환경 변수와 같은 민감한 정보를 관리하는 것은 매우 중요합니다.

이를 효율적으로 처리하기 위해 flutter_dotenv 패키지를 사용할 수 있습니다.

이 블로그 포스트에서는 flutter_dotenv 패키지를 사용하여 환경 변수를 설정하고 사용하는 방법과 주요 옵션에 대해 자세히 설명하겠습니다.

1. flutter_dotenv 패키지 설치

먼저 flutter_dotenv 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 다음과 같이 추가합니다

dependencies:
  flutter:
    sdk: flutter
  flutter_dotenv: ^5.0.2

그런 다음, 터미널에서 pub get 명령어를 실행하여 패키지를 설치합니다

flutter pub get

2. .env 파일 생성

프로젝트 루트 디렉토리에 .env 파일을 생성합니다. 이 파일에 환경 변수를 정의합니다. 예를 들어, API 키와 같은 민감한 정보를 다음과 같이 설정할 수 있습니다

API_URL=https://api.example.com
API_KEY=your_api_key_here

3. flutter_dotenv 초기화

flutter_dotenv를 사용하려면 애플리케이션 시작 시 환경 변수를 로드해야 합니다. main.dart 파일에서 dotenv를 초기화합니다.

import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

void main() async {
  // Ensure flutter_dotenv is initialized before runApp
  await dotenv.load(fileName: ".env");

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('flutter_dotenv Example'),
        ),
        body: Center(
          child: Text('API URL: ${dotenv.env['API_URL']}'),
        ),
      ),
    );
  }
}

위 코드에서 dotenv.load(fileName: ".env")를 사용하여 .env 파일을 로드합니다. 그런 다음, dotenv.env['API_URL']와 같은 방식으로 환경 변수를 사용할 수 있습니다.

4. 환경 변수 사용

환경 변수를 사용하는 방법은 매우 간단합니다. 다음 예제를 통해 살펴보겠습니다

import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

void main() async {
  await dotenv.load(fileName: ".env");
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final apiUrl = dotenv.env['API_URL'];
    final apiKey = dotenv.env['API_KEY'];

    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('flutter_dotenv Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text('API URL: $apiUrl'),
              Text('API Key: $apiKey'),
            ],
          ),
        ),
      ),
    );
  }
}

위 코드에서 dotenv.env['API_URL']와 dotenv.env['API_KEY']를 사용하여 환경 변수를 읽고 UI에 표시합니다.

5. 주요 옵션

5.1 파일 이름 변경

기본적으로 .env 파일을 사용하지만, 다른 파일 이름을 사용할 수도 있습니다. 예를 들어, config.env 파일을 사용하려면 dotenv.load 메서드에 파일 이름을 지정합니다

await dotenv.load(fileName: "config.env");

5.2 안전 모드

안전 모드는 환경 변수가 누락된 경우 오류를 발생시키지 않도록 합니다. 기본적으로 안전 모드는 활성화되어 있습니다. 이를 비활성화하려면 isOptional 옵션을 사용합니다

await dotenv.load(fileName: ".env", isOptional: true);

5.3 결합 사용

여러 개의 .env 파일을 사용할 수 있습니다. 예를 들어, 기본 파일과 추가 파일을 결합하려면 다음과 같이 할 수 있습니다

await dotenv.load(fileName: ".env");
await dotenv.load(fileName: "additional.env", mergeWith: dotenv.env);

위 코드는 .env 파일을 먼저 로드한 후, additional.env 파일을 로드하여 기존 환경 변수와 병합합니다.

결론

flutter_dotenv 패키지를 사용하면 Flutter 애플리케이션에서 환경 변수를 쉽게 관리할 수 있습니다.

이 블로그 포스트에서는 패키지 설치부터 기본 사용법, 주요 옵션까지 다양한 방법을 설명했습니다.

이를 통해 민감한 정보를 안전하게 관리하고, 개발 환경과 배포 환경을 구분하여 애플리케이션을 더욱 효율적으로 개발할 수 있습니다.

 

 

 

 

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

 

나비일기장 [수발일기장] - Google Play 앱

수형자 수발가족및 수발인을 위한 일기장으로 수형생활시기에 따른 정보를 얻을 수 있습니다.

play.google.com

 

728x90