flutter env 설정기

좌충우돌 env 설정기
윤여찬's avatar
Jun 10, 2025
flutter env 설정기
vue3로 개발할때 config에 난 env 설정을 하여 개발, 운영, 로컬를 두고 운영을한다. 근데? 지금 사용하는 flutter에선
// 노선임님 // const String apiBaseUrl = "http://"; // 유진 기공 URL // const String apiBaseUrl = "http://"; // Oilfield NEX // const String apiBaseUrl = "https://"; // 찬이 로컬 const String apiBaseUrl = "http://10.10.0.208:3000";
이런식으로 더럽게 사용했었다… 바쁘단 핑계로 env 설정할 시간이 없었으니? 근데 이젠 못보겠다 싶어서 flutter에서 env 설정을 해주기로 마음먹었다.
lib/ 경로에 env.dart 파일을 만들어주었다. // lib/env.dart import 'package:flutter_dotenv/flutter_dotenv.dart'; class Env { static String get apiBaseUrl { final url = dotenv.env['API_BASE_URL']; if (url == null || url.isEmpty) { throw Exception('API_BASE_URL 미설정'); } return url; } static String get webViewBaseUrl { final url = dotenv.env['WEBVIEW_BASE_URL']; if (url == null || url.isEmpty) { throw Exception('WEBVIEW_BASE_URL 미설정'); } return url; } }
이렇게 class를 만들어 Env에서 api요청 webview요청 url을 각각 리턴하도록 설계했다.
import 'package:web_view/env.dart'; // env 설정 이제 이렇게 요청하는 곳에서 바로 가져다 쓸 수 있어서 편해졌다. final Uri uri = Uri.parse('${Env.apiBaseUrl}/api/auth/socialLogin/google');
이제 그럼? 어떤 라이브러리를 사용했는가~?
import 'package:flutter_dotenv/flutter_dotenv.dart';
그리고 프로젝트 경로에
.env.development .env.local .env.production
이렇게 env 파일 3가지를 만들어주었다.
# 1) 로컬(직접 디바이스/에뮬레이터에 바로 띄워볼 때) flutter run --dart-define=ENV=local # 2) 개발 서버 연결 (디버그 모드로 개발서버에 붙어서 테스트) flutter run --dart-define=ENV=development # 3) 운영 서버용 릴리즈 빌드 (APK) flutter build apk --release --dart-define=ENV=production # (iOS 릴리즈가 필요하면) flutter build ios --release --dart-define=ENV=production
이제 이렇게 빌드를 말면 env가 자동으로 로드하여 사용할 수 있다.
 
Share article

찬찬잉