ມາແບ່ງ flavors ໃນ flutter ໃຫ້ມັນງ່າຍຈົນຕາຍດ້ວຍ flutter_flavorizr
ຈາກບົດຄວາມກ່ອນໜ້ານີ້ຂອງຜູ້ຂຽນທີ່ວ່າດ້ວຍເລື່ອງຂອງການແບ່ງ enviroment
ໃນການພັດທະນາແອັບດ້ວຍ flutter ຖ້າຍັງບໍ່ທັນໄດ້ອ່ານໄປຫາອ່ານກັນກ່ອນໄດ້ເລີຍ
ຈະເຫັນວ່າການແບ່ງ enviroment ຈະມາຄູ່ກັບການແບ່ງ flavors ເຊິ່ງໃນແຕ່ລະ platform ບໍ່ວ່າເປັນ andorid
ios
macos
… ຈະມີການ config ທີ່ແຕກຕ່າງກັນ. ສະນັ້ນໃນການເຮັດ flavor ຈຶ່ງເປັນວຽກທີ່ຍາກ ແລະ ສັບຊ້ອນສົມຄວນເພາະຕ້ອງມີຄວາມຮູ້ໃນການເຮັດແອັບໃນແຕ່ລະ platfrom ມາລະດັບໜຶ່ງ ແລະ ຍັງໃຊ້ເວລາຫຼາຍໃນການ setup project ໜຶ່ງໆຂຶ້ນມາ. ຖ້າໃຜເຈີບັນຫາເລື່ອງການ setup flavors ຫຼື ຄິດຍາກທີ່ຈະເລີ່ມສຶກສາມັນກໍ່ເຊີນມາທາງນີ້ໄດ້ເລີຍຜູ້ຂຽນຂໍ້ສະເໜີເຄື່ອງມືທີ່ຈັດການ flavors ໃຫ້ເຮົາແບບໂຄດງ່າຍໂຄດສະບາຍນັ້ນຄື flutter_flavorizr.
Install
ເພີ່ມໄປໃນ pubspec.yaml
ໃນສ່ວນຂອງ dev_dependencies
ດັ່ງລຸ່ມນີ້:
dev_dependencies:
flutter_flavorizr: ^2.2.1
run
$> flutter pub get
ພຽງເທົ່ານີ້ກໍ່ພ້ອມໃຊ້ງານ
Usage
ສ້າງ file flavorizr.yaml
ໃນ root project ແລ້ວ config ຕາມຕ້ອງການໄດ້ເລີຍ.
- ຕົວຢ່າງ config
app:
android:
flavorDimensions: 'version'
flavors:
dev:
app:
name: "Good App DEV"
android:
applicationId: "com.good.app.dev"
firebase:
config: ".firebase/dev/android/google-services.json"
ios:
bundleId: "com.good.app.dev"
firebase:
config: ".firebase/dev/ios/GoogleService-Info.plist"
prod:
app:
name: "Good App"
android:
applicationId: "com.good.app"
firebase:
config: ".firebase/prod/android/google-services.json"
ios:
bundleId: "com.good.app"
firebase:
config: ".firebase/prod/ios/GoogleService-Info.plist"
ide: vscode
ຫຼັງຈາກນັ້ນ run ຄຳສັ່ງ
$> flutter pub run flutter_flavorizr
ພຽງເທົ່ານີ້ flutter_flavorizr
ກໍ່ສ້າງ flavors dev
ແລະ prod
ໃຫ້ເຮົາແບບອັດຕະໂນມັດ. ສະບາຍກວ່ານີ້ມີອີກບໍ່!!. ຈາກ config ຂ້າງເທິງຈະເຫັນວ່າມີການອ້າງເຖິງ firebase config ແມ່ນແລ້ວທຸກຄົນ! flutter_flavorizr
ຈະ config ໃນການ load file ນີ້ໃຫ້ເຮົາສຳເລັດຮຽບຮ້ອຍແບບບໍ່ຕ້ອງໄປເຮັດຫຍັງເລີຍໂດຍສະເພາະ ios
ທີ່ແຕ່ກ່ອນຕ້ອງໄດ້ຂຽນ script
ຂຶ້ນມາເອງເພື່ອ load file ນີ້ແຕ່ຕອນນີ້ flutter_flavorizr
ເຮັດໃຫ້ພວກເຮົາຮຽບຮ້ອຍແລ້ວວວວວວວວວວວ.
ນອກຈາກນີ້ເຮົາຍັງສາມາດ custom processors set
ເຊິ່ງເປັນ set ໃນການຈັດການ flavors ໃຫ້ເຮົາເຊັ່ນວ່າ: ເຮົາບໍ່ຢາກໃຫ້ສ້າງ assets icon
ແຍກເປັນແຕ່ລະ flavor ກໍ່ສາມາດກຳນົດຢູ່ສ່ວນນີ້ໄດ້ເລີຍ.
- example config
app:
android:
flavorDimensions: 'version'
instructions:
- assets:download
- assets:extract
- android:androidManifest
- android:buildGradle
- android:icons
- flutter:flavors
- flutter:app
- flutter:main
- flutter:targets
- ios:xcconfig
- ios:buildTargets
- ios:schema
- ios:icons
- ios:plist
- ios:launchScreen
- google:firebase
- assets:clean
- ide:config
...
ຖ້າເຮົາບໍ່ກຳນົດ instructions
ຈະເປັນການໃຊ້ 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:xcconfig
- ios:buildTargets
- ios:schema
- ios:dummyAssets
- ios:icons
- ios:plist
- ios:launchScreen
- macos:xcconfig
- macos:configs
- macos:buildTargets
- macos:schema
- macos:dummyAssets
- macos:icons
- macos:plist
- google:firebase
- huawei:agconnect
- assets:clean
- ide:config
ສາມາດສຶກສາ config ຕ່າງໆໄດ້ ທີ່ນີ້
Note:
flutter_flavorizr ຈະບໍ່ງໍແງກັບ clean Flutter project. ໃຜບໍ່ clean ກໍ່ໂຕໃຜໂຕມັນ ຮະຮະຮະ
ມາຮອດນີ້ກໍ່ຂໍ້ຈົບບົດຄວາມສັ້ນໆນີ້ໄວ້ເທົ່ານີ້ ຫວັງວ່າທຸກຄົນຈະແບ່ງ flavors ກັນໄດ້ແບບບໍ່ມີບັນຫາບໍ່ເສຍເວລານັບແຕ່ນີ້ໄປ!!!.