Flutter flavor build
project 초기 세팅방법
defendencies:
flutter:
sdk: flutter
get_it: ^6.1.1
injectable: ^1.3.0
dev_defendencies:
build_runner: ^2.0.1
flutter_test:
sdk: flutter
injectable_generator: ^1.3.0
설명 없이 순서대로 코드만 작성함
Flutter project를 실행시 초기 예제 코드와 파일은 전부 삭제한다
abstract class Enviroment {
static const dev = "dev";
static const qa = "qa";
static const production = "production";
}
Future<void> mainCommon(String env) async {
WidgetsFlutterBinding.ensureInitialized();
configureInjection(Environment.prod);
runApp(const AppWidget());
}
Future<void> main() async {
await mainCommon(Enviroment.production);
}
Future<void> main() async {
await mainCommon(Enviroment.dev);
}
Future<void> main() async {
await mainCommon(Enviroment.qa);
}
import 'package:flutter/material.dart';
class AppWidget extends StatelessWidget {
const AppWidget({Key? key}) : super(key: key);
Widget build(BuildContext context) {
return MaterialApp(
home: MainPage(),
);
}
}
import 'package:flutter_goffer/injection.config.dart';
import 'package:get_it/get_it.dart';
import 'package:injectable/injectable.dart';
final GetIt getIt = GetIt.instance;
()
void configureInjection(String env) {
$initGetIt(getIt, environment: env);
}
파일 생성을 완료 하였으면 이제 터미널을 열고 아래 코드를 입력한다
#flutter pub run build_runner watch --delete-conflicting-outputs
명령어를 입력하면 build runner가 injection.config.dart 파일을 자동으로 생성한 것을 볼 수있다
project 수준의 .vscode 폴더를 보면 launch.json 파일이 생성되어 있을 것이다 이 json 파일의 내용을 아래와 같이 수정을 하면 된다
build 환경을 production, dev, qa로 나누고 unit test를 위한 환경도 json 파일에 작성하면 된다
{
"version": "0.2.0",
"configurations": [
{
"name": "flutter_goffer (production)",
"request": "launch",
"type": "dart",
"flutterMode": "debug",
"program": "lib/main_production.dart",
"args": ["production"],
},
{
"name": "flutter_goffer (dev)",
"request": "launch",
"type": "dart",
"flutterMode": "debug",
"program": "lib/main_dev.dart",
"args": ["dev"],
},
{
"name": "flutter_goffer (qa)",
"request": "launch",
"type": "dart",
"flutterMode": "debug",
"program": "lib/main_qa.dart",
"args": ["qa"],
},
]
}
flutter build apk --release --flavor production -t lib/main_production.dart
flutter build ipa --release --flavor production -t lib/main_production.dart
여기까지가 project를 진행 하기전 기본 build 환경을 구축하는 방법이다
이렇게 하면 기존 flutter 기본 project에서 main.dart만 빌드를 할 수 있는 문제를 production, qa, dev 총 3개로 나눠서 build를 가능하게 해준다