[Flutter] Build Settings

Tyger·2021년 10월 20일
0

Project Build Settings

Flutter flavor build

project 초기 세팅방법

pubspec.yaml

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를 실행시 초기 예제 코드와 파일은 전부 삭제한다

lib/_constant/flavor/enviroment.dart

abstract class Enviroment {
  static const dev = "dev";
  static const qa = "qa";
  static const production = "production";
}

lib/_constant/flavor/main_common.dart

Future<void> mainCommon(String env) async {
  WidgetsFlutterBinding.ensureInitialized();
  configureInjection(Environment.prod);
  runApp(const AppWidget());
}

lib/main_production.dart

Future<void> main() async {
  await mainCommon(Enviroment.production);
}

lib/main_dev.dart

Future<void> main() async {
  await mainCommon(Enviroment.dev);
}

lib/main_qa.dart

Future<void> main() async {
  await mainCommon(Enviroment.qa);
}

lib/presentaion/app_widget.dart

import 'package:flutter/material.dart';

class AppWidget extends StatelessWidget {
  const AppWidget({Key? key}) : super(key: key);

  
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MainPage(),
    );
  }
}

lib/injection.dart

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 파일에 작성하면 된다

.vscode/launch.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를 가능하게 해준다

profile
Flutter Developer

0개의 댓글