- Dependency injection (kiwi)
- Network layer (dio)
- Network logging (niddler, dio)
- Viewmodels (provider)
- Translations
- Json serialization (json_serializable)
- Different environments (dev/alpha/beta/prod)
- Themes (oh yeah!)
- Navigator
- Linting (flutter analyze)
A custom dart program is used for updating the translations
https://pub.dev/packages/icapps_translations
Add your locale folder to your flutter config
flutter:
assets:
- assets/locale/
Command to run to update the translations
flutter packages pub run icapps_translations
flutter packages pub run build_runner build
flutter packages pub run build_runner build --delete-conflicting-outputs
flutter packages pub run build_runner watch
--release
is not available for emulators. Performance will be better
flutter run --flavor dev -t lib/main.dart
flutter run --release --flavor dev -t lib/main.dart
flutter run --flavor alpha -t lib/main_alpha.dart
flutter run --release --flavor alpha -t lib/main_alpha.dart
flutter run --flavor beta -t lib/main_beta.dart
flutter run --release --flavor beta -t lib/main_beta.dart
flutter run --flavor prod -t lib/main_prod.dart
flutter run --release --flavor prod -t lib/main_prod.dart
To check your code matches our linting. The analysis_options.yaml contains all the code checks.
flutter analyze
In order to run the test we need to run
flutter test
Fastlane is used for building iOS and Android
This script will run a dart script. The dart script itself will ask you some input to complete the full rename
./tool/rename_project.sh
place the provisioning profiles -> provision_profile/**
naming should be the same as provided in the iOS/Configuration/** files (underscore will be replaced with a space in the configuration files)
Configure the required languages in xCode
Obfuscation is enabled by default when using fastlane for building. The symbol files are stored in
./build/debug-info/#{options[:flavor]}
Important: Add the following regex to jenking configuration to also archive the symbol files
**/*.symbols
Replace the files in assets_launcher_icons/
You can also change the adaptive_icon_background in the flutter_launcher_icons-{flavor}.yaml (currently "#CB2E63") (only available for Android 8.0 devices and above)
After this, run the following command
flutter pub run flutter_launcher_icons:main -f flutter_launcher_icons-dev.yaml
No Flavor provided
Add a flavor to your configuration.
For question contact me or check Stackoverflow