Flutter - How to split the envionment on flutter
之前一直想找個機會介紹Flavors,這次因為重構地圖部分,乾脆順便做個小教學。
flutter_flavorizr: ^2.2.3
同樣的在開始之前我一樣會先確認當前環境,Flutter
雖然已經進入算是穩定期,比較少去大幅修改架構,不過以防萬一,有可能你看到這篇文章時已經過時了:
Name | Version |
---|---|
Flutter Version | v3.16.4 |
Flavorizr | v2.2.3 |
初始化
這個套件主要幫助你區分不同的環境,產品上線後會面臨幾個問題
- 修改線上的錯誤,開個hotfix
- 跳脫版本線上版本開新的功能
- 開啟新的版本,開發新的Sprint
- 需要測試版本進行效能調校
這時我們需要針對不同的production
, staging
, testing
, development
分支進行處理,但光靠一個設定檔有時會不太好管理,過去我們會嘗試透過多個main file
去處理,但這次我們可以使用Flavors
去達成相同效果。
首先我們打開pubspec.yaml
,並進行安裝pub get
1 | dev_dependencies: |
接著我們在Flutter資料夾內建立一個Flavors的設定檔(flavorizr.yaml
),內部放置各種不同的版本:
1 | flavors: |
完成之後我們可以執行flutter pub run flutter_flavorizr
來讓他產生相關的設定檔,接著他就會在lib
新增一些資料。
除此之外這邊會依照所有設定去產生相對應的設定,不過如果想要指定特定的處理可以透過-p or --processors
來指定想要的內容:
例如: -p ios:icons
or -p ios:launchScreen
or -p google:firebase,assets:clean
,接著就能盡量避免取代掉原本的內容。
執行
我們可以看到他針對我們新增的參數分別新增了production
, staging
and development
並且預先寫了一些範例在內部。
如果要開啟不同的版本,可以透過下方指令:
1 | flutter run --flavor <上方設定的名字> -t lib/main_xxxx.dart |
透過上方的方法就能輕鬆區別不同環境,下次我想想也許會再重新講解有關於Firebase的事情,畢竟有蠻多重大的更新,
那我們就下次見!感謝閱讀。