flutter에서 환경파일 이용하기 (dart)

POII·2022년 10월 13일
0

환경파일 이용하기

개요

날씨 api 를 받아와 화면에 표시하는 기능을 만들던 중, api key를 하드코딩으로 집어넣지 않고 별도의 파일로 관리하는 것이 좋겠다는 생각이 들었다.

별도의 파일로 관리하여 gitignore에 등록해주면 보안적인 측면도 신경 쓸 수 있고, 추후 사용하는 api의 엔드포인트나 key 가 변경되었을 때 유지보수도 편리해진다.

flutter_dotenv

💡 dotenv 공식 문서: [https://pub.dev/packages/flutter_dotenv](https://pub.dev/packages/flutter_dotenv)
  • 공식 문서에 나와있는데로 설정해보기
    1. pubspec.yaml

      dependencies:
        flutter:
      		flutter_dotenv: ^5.0.2
      
      flutter:
      	assets:
      	  - assets/config/env

      pubspec.yaml 파일의 flutter 항목 밑에 assets 이라는 키워드로 .env 파일을 추가해주었다.

      assets/config 라는 디렉토리는 원래 존재하지 않는 디렉토리이기 때문에 새로 만들어 주었다..(임의로 지정)

    2. .env

      	apiKey = 발급받은apikey

      위에 작성한 assets/config 디렉토리 밑에 .env 파일을 생성해 apiKey를 입력해주었다.

    3. main 을 async로 바꾼 후 dotenv의 경로 지정, 로드

      import 'package:flutter_dotenv/flutter_dotenv.dart';
      
      // DotEnv dotenv = DotEnv() is automatically called during import.
      // If you want to load multiple dotenv files or name your dotenv object differently, you can do the following and import the singleton into the relavant files:
      // DotEnv another_dotenv = DotEnv()
      
      Future main() async {
        // To load the .env file contents into dotenv.
        await dotenv.load(fileName: "assets/config/.env");
        //...runapp
      }
    4. 사용하고자 하는 위치에서

      import 'package:flutter_dotenv/flutter_dotenv.dart';
      
      ...
      
      final String apiKey = dotenv.env['apiKey']!;

      dotenv.env 라는 함수를 이용해 map data처럼 불러올 수 있다.

결론

json파일로 저장해서 불러와 사용하는 방법도 있지만, dotenv라는 공식문서가 있어서 한 번 사용해 보았다. 초기 설정이 귀찮긴해도 fallback 등으로 null-safety도 신경쓸 수 있고, load 기능으로 여러 변수 병합도 가능해서 추후 다른 기능을 이용할 일이 있다면 json으로 정보 저장하는 형식보다 훨신 편할 것 같다.

profile
https://github.com/poi1649/learning

0개의 댓글