반응형
안드로이드에서 API Key 같은 것을 Project 내에 보관해서 사용할 때는
local.properties에 값을 저장해서 사용하곤 했다.
하지만, 해당 방법을 flutter에서 사용하기 쉽지 않기 때문에
플러터의 flutter_dotenv 라이브러리를 사용해서 비슷한 기능을 실현할 수 있다.
참고로 해당 방법은 플러터의 패키지를 사용하기 때문에
Android / iOS 둘 다 사용할 수 있다
flutter_dotenv 패키지 설치 및 셋업 하기
해당 사이트에서 설치 방법을 찾을 수 있다.
이 이후에 몇 가지 셋업을 해야 사용할 수 있다.
프로젝트의 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 업데이트를 최적화 하는 방법, UI Tree란? (0) | 2023.09.22 |
---|---|
flutter에서 화면 회전 하지 못하게 막는 방법 (0) | 2023.08.29 |
플러터에서 androidManifest에 localProperties 값 대입하기 (0) | 2023.08.08 |
플러터(flutter) - 온보딩 화면 만들기 (0) | 2023.06.03 |
Flutter 기초 - SharedPreference 사용 방법 (0) | 2023.05.28 |
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글