- 사이트 : flutter_dotenv
[Flutter / dotenv] flutter_dotenv(v.5.x.x)로 환경변수 설정하기
응용 프로그램 내에서 사용할 환경 변수는 보통 한 개 파일에서 관리하는 것이 바람직합니다. 특히 API Key나 DB의 패스워드와 같이 민감한 정보들은 하드코딩으로 직접 값을 넣는 대신 환경 변수 파일에서 값을 읽어서 사용해야 합니다.
Flutter 에서는 pub.dev에서 제공하는 flutter_dotenv 라이브러리를 이용하여 쉽게 환경 변수를 설정할 수 있습니다.
다음 절차대로 따라하면 1분 만에 설정할 수 있습니다.
(본 포스팅에서 소개할 라이브러리 버전은 v.5
이상으로, 현재(2023.06.30.) 기준 최신 버전입니다.)
1. pubspec.yaml
의 dependencies
에 라이브러리 등록하기
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
flutter_dotenv: ^5.1.0
일반적으로 라이브러리를 등록하듯 dependencies
영역 안에 flutter_dotenv
라이브러리를 추가해 줍니다.
(버전은 상시 달라질 수 있지만, 버전 넘버 5가 동일하면 사용 방법은 동일합니다.)
2. pubspec.yaml
의 assets
에 사용할 .env
파일 경로 등록하기
assets:
- .env
저는 루트 경로 안에 .env
파일을 다음과 같이 만들었습니다.
만약에 하단의 사진처럼 assets
이나 config
등 폴더를 만들고 그 안에 .env
를 만들고 싶으면 pubspect.yaml
의 설정을 다음과 같이 해주시면 됩니다.폴더 이름은 예시일 뿐입니다. 자신이 만든 폴더 명을 assets
에 입력해 주세요.
assets:
- assets/.env # 폴더 이름이 assets 일 때
- config/.env # 폴더 이름이 config 일 때
3. main.dart
에서 .env
파일 읽어오기
import 'package:flutter_dotenv/flutter_dotenv.dart';
Future main() async {
await dotenv.load(fileName: '.env');
runApp(
const MyApp(),
);
}
runApp
실행 전에 비동기로 dotenv.load(fileName: ...)
으로 자신의 환경변수 파일을 불러옵니다. (5버전 이하는 DotEnv.load(fileName: '...')
를 씁니다.)
4-1. dotenv.env['키']
: .env
파일에 환경변수를 설정한 후에 화면에 불러오기
// .env
ID=abc1234
임의로 키=밸류 형식으로 .env
파일을 만들었습니다. 대입연산자를 사이로 좌측의 ID
가 키가 되고, 우측의 abc1234
가 값이 됩니다.
dotenv.env['키']
오브젝트 형식에서 키를 이용해 밸류를 찾아오는 것처럼, 임의로 설정한 키를 dotenv.env['키']
작성해주면 입력한 값을 불러올 수 있습니다.
사용 예시)HomeScreen
내 Text
위젯 안에서 ID
키를 활용하여 입력한 값을 불러옵니다.
import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: SizedBox(
child: Center(
child: Text(
dotenv.env['ID'].toString(),
style: const TextStyle(
fontSize: 32.0,
fontWeight: FontWeight.bold,
),
),
),
),
);
}
}
4-2. dotenv.get('키')
: Null Safety 방지, 화면에 값 불러오기
dotenv.get('키')
위의 dotenv.env['키']
와의 차이점은 Null Safety 방지 여부에 있습니다. get()
메소드를 사용하면 찾고자하는 환경변수가 정의되지 않을 시 예외(Exception)을 발생시킵니다. 만약 특정한 환경변수가 정의되지 않았을 시 기본값도 지정해 줄 수도 있습니다.
(중요) .env
파일은 반드시 .gitignore
에 추가하기
환경변수나 API키처럼 중요한 정보들이 저장되어 있는 만큼, 이 파일은 git public으로 올라가면 안됩니다.
*.env
.gitignore
에 위의 키워드를 추가하여 로컬에서만 환경변수를 관리할 수 있도록 해줍니다.
'Flutter > 외부 패키지, 라이브러리' 카테고리의 다른 글
[Flutter / Kakao Login] Flutter에서 10분 안에 카카오 로그인 설정하기(with kakao_flutter_sdk_user) (0) | 2023.07.12 |
---|