본문 바로가기
Mobile/Flutter

[Flutter] Flutter Flavorizr 를 통한 Flavor 설정

by 펭귄알 2024. 8. 9.

프로젝트를 진행하다보면 동일한 기능이지만 다른 버전이 필요할 경우가 있습니다.

예를 들어 개발(development), 스테이징(staging), 프로덕션(production) 환경에 맞게 설정을 달리할 수 있습니다.

플레이버(flavor)는 소프트웨어 개발에서 동일한 애플리케이션의 여러 가지 변형 버전을 말합니다. 각 변형은 공통적인 코드베이스를 공유하지만, 설정, 리소스, 환경 변수, 또는 특정 기능이 다를 수 있습니다.

 

이 기능을 직접 설정하는것은 약간의 공수가 필요한데 이것을 쉽게 설정해주는 라이브러리가 있습니다.

Flutter Flavorizr

기능

  • 다양한 환경에 맞는 플레버 관리: 개발, 스테이징, 프로덕션 등 다양한 환경에 맞게 애플리케이션을 구성할 수 있습니다.
  • 자동화된 코드 생성: 각 플레버에 대해 필요한 파일과 설정을 자동으로 생성해 줍니다.
  • 커스터마이즈 가능: 각 플레버의 설정을 필요에 맞게 커스터마이즈할 수 있습니다.
참고: 이 도구는 새롭고 깨끗한 Flutter 프로젝트에서 더 잘 작동합니다. 일부 프로세서는 일부 기존 파일과 특정 기본 구조를 참조하기 때문에 기존 프로젝트에서 Flutter Flavorizr를 실행하면 오류가 발생할 수 있습니다.

 

iOS에서는 프로젝트의 스키마를 조정하기 위해 아래 소프트웨어가 필요합니다.(Android에만 적용하려면 아래 소프트웨어는 필요없음)

사용방법

1. pubspec.yaml에 아래 내용을 추가합니다.

 

2. 커맨드 실행

flutter pub run flutter_flavorizr

 

3. main.dart 실행(flavor 따라)

flutter run --flavor <flavorName> -t lib/main_<flavorName>.dart

 

4. 실행 결과

 

Banner에는 Flavor에 설정한 이름이 표기되며, 각 Flavor는 아래 파일의 main.dart를 통해 앱이 실행됩니다.

 

 

위에서 생성된 내용은 아래 F라는 이름의 클래스로 생성된 파일에서 수정이 가능합니다.

 

F Class내에 존재하는 변수들은 모두 Static으로 설정되어있어 접근이 용이하며 필요에 따라 값을 추가, 변경할 수 있게 되어있어서 유용한 것 가습니다.

 

초기에는 기본 프로세서를 통해 수행하지만, 추후에 Flavor가 추가된다면 아마 작업한 모든 내용이 덮어쓰기 될 것입니다.

그래서 실행 프로세스를 선택하여 수행할 수있도록 만들어져있습니다.

Default processors set 

  • assets:download
  • assets:extract
  • android:androidManifest
  • android:buildGradle
  • android:dummyAssets
  • android:icons
  • flutter:flavors
  • flutter:app
  • flutter:pages
  • flutter:main
  • flutter:targets
  • ios:podfile
  • ios:xcconfig
  • ios:buildTargets
  • ios:schema
  • ios:dummyAssets
  • ios:icons
  • ios:plist
  • ios:launchScreen
  • macos:podfile
  • macos:xcconfig
  • macos:configs
  • macos:buildTargets
  • macos:schema
  • macos:dummyAssets
  • macos:icons
  • macos:plist
  • google:firebase
  • huawei:agconnect
  • assets:clean
  • ide:config

프로젝트에 참여하면서 여러 개발 환경을 배포해야되는 상황이 있었는데 남겨두면 좋은 내용일 것 같아서 작성하게되었습니다.

오늘도 빡코딩!