본문 바로가기
플러터(flutter)

flutter_dotenv을 사용해서 local에 API Key 보관하기

by 기계공학 주인장 2023. 8. 11.
반응형

안드로이드에서 API Key 같은 것을 Project 내에 보관해서 사용할 때는

 

local.properties에 값을 저장해서 사용하곤 했다.

 

하지만, 해당 방법을 flutter에서 사용하기 쉽지 않기 때문에

 

플러터의 flutter_dotenv 라이브러리를 사용해서 비슷한 기능을 실현할 수 있다.

 

참고로 해당 방법은 플러터의 패키지를 사용하기 때문에

 

Android / iOS 둘 다 사용할 수 있다


flutter_dotenv 패키지 설치 및 셋업 하기

해당 사이트에서 설치 방법을 찾을 수 있다.

 

 

flutter_dotenv | Flutter Package

Easily configure any flutter application with global variables using a `.env` file.

pub.dev

 

이 이후에 몇 가지 셋업을 해야 사용할 수 있다.


프로젝트의 root 디렉토리에 .env 파일을 생성한다.

다음과 같이 파일을 생성한다.

 

 

참고로 파일이름은 꼭 .env일 필요는 없다.

 

그렇기 때문에 다음과 같이 설정해서 사용하는 방법도 가능하다.

 

dev.env - 개발 및 디버그용으로 사용
public.env - 배포용으로 사용

 


.env 파일 안에 API Key 같은 데이터 입력하기

다음과 같이 Map 형태로 데이터를 입력해 주면 된다.

google_apiKey=ABCDF12345

 


pubspec.yaml에 assets:으로 해당 파일 등록하기

pubspec.yaml에 다음과 같은 코드를 등록해줘야 한다.

 

# The following section is specific to Flutter packages.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # 아래의 assets 부분을 추가해준다.
  assets:
    - .env

 

물론 다른 이름으로 했다면 .env를 해당 이름으로 바꿔준다.

 


.gitignore에 등록하기

.env 파일은 github에 업로드되선 안되기 때문에 .gitignore에 등록해야 한다.

 

# Exclude Secret data file
.env

 


flutter_dotenv사용하기

flutter_dotenv  초기화

flutter_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 {
  // 초기화를 실시한다.
  await dotenv.load(fileName: ".env");
  //...runapp
}

 


dotenv.env를 사용해서 .env에 저장되어 있는 값 불러오기

다음과 같은 코드를 사용하여 어디서든 .env에 저장되어 있는 값을 불러올 수 있다.

 

import 'package:flutter_dotenv/flutter_dotenv.dart';
dotenv.env['google_apiKey'];

 

참고로 위 코드는 패키지 버전이 5.0.0 이상일 때만 사용할 수 있고 5.0.0 미만 버전일 때는 아래와 같은 방법을 사용해야 한다.

 

import 'package:flutter_dotenv/flutter_dotenv.dart' as DotEnv;

Future main() async {
  // 초기화 (5.0.0 이상일 때와 다름)
  await DotEnv.load(fileName: ".env");
  //...runapp
}

 

그리고 다음과 같은 방법으로 사용할 수 있다.

import 'package:flutter_dotenv/flutter_dotenv.dart';
env['google_apiKey'];

 

 

flutter에서 화면 회전 하지 못하게 막는 방법

앱을 만들 때 가로 모드 UI를 별도로 구현하지 않는 이상 휴대폰을 가로로 회전 시 앱이 같이 돌지 않게 해야 합니다. 안드로이드에서는 간단했지만 flutter에서는 조금 복잡한데 flutter에서 세로

android-developer.tistory.com

 

반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


댓글