This is a base flutter scaffold project that has all configuration & setup created. So we can reduce the efforts of basic project setup & project level boilerplate code.
Production, Staging, Development (with abstract properties) Modes: Debug, Release, Profile.
Localization support based on Easy Localization
Abstract layer for a custom logger. It has default implementation of Crashlytics. It can again be replaced with any other services.
Crashalytics setup that works in Release and Profile Mode.
Abstract layer for a Custom event logging. It has a default implementation of Firebase Analytics. It can again be replaced with any other services.
Firebase performance integration to check App freezing, network latency monitoring. (Integrated firebase_performance_interceptor)
Integration of firebase remote config.
Analysis_options setup for strict lint checks.
Flavor-wise application-id overridden. So that the same application with different flavors can be installed simultaneously.
Force upgrade setup based on Firebase Remote config.
Currently, it has two configuration
- Latest App Version (Build Number)
- Latest Stable App Version (Build Number)
If the latest app version is higher then the current version, it will trigger Flexible Update (Snackbar Prompt).
If the current app version is below the latest stable version, then it will trigger an Immediate (Force) update.
Codemagic.yaml file has been added at the root of source code. It contains sample pipeline for Development build.
- Connect the project repository to codemagic using this guide. Codemagic will auto-detect the yaml file which has sample workflow added.
- Select workflow and the branch from which buid to be generated. Start Build and it should generate the builds for Android & iOS.
- Android
- Except
production-store
workflow, all the workflows are configured to use Debug keystore generated on the fly from Codemagic's build machine. - For
production-store
workflow, the keystore related environment variables must be replaced with the project specific keystore info.
- iOS
- Code Signing assets like Certificates, Profiles, etc. needs to be changed based on project's bundle ids and environments. More info
- For code signing profiles, following is recommended:
- Local distribution (QA, Client Releases, etc) -
adhoc
profiles - Store / TestFlight distribution -
appstore
profiles.
Once codemagic generates the artifacts, we can distribute the apps in various ways.