This is the Kibisis mobile app built in Flutter.
- 1. Overview
- 2. Usage
- 3. Development
- 4. Building
- 5. Publishing
- 6. Appendix
- 7. How To Contribute
- 8. License
Coming soon...
Refer to the documentation for information on how to use Kibisis.
- Simply run:
$ flutter pub get
β οΈ NOTE: This will install the required dependencies and generate the development keys that can be used for signing the development version of the app.
- To run simply use:
$ flutter run
The icons are configured using the flutter_launcher_icons
package. The configuration sits in the pubspec.yaml
file.
Tl;dr, you can create new icons by running the command:
dart run flutter_launcher_icons
NOTE: This will create the icons for all platforms except Android, see below for details on Android.
The Android launcher icons are created using Android Studio's Image Asset Studio. You can follow this on how to create adaptive icons.
NOTE: If you are running Android Studio from the root, you will need to reopen Android Studio from the
andriod/
directory in order to access the "Andorid View".
For more information regarding Adaptive Icons, see here.
To start using your own Doppler config, go to the project on Doppler and press the "+" to create a new personal branch config in the "Development" config
β οΈ NOTE: Use your name in lowercase with underscores instead of spaces (snake_case).
Follow the instructions here to:
- login to Doppler, and;
- setup Doppler to use the
mobile-app
project with your personal config.
β οΈ NOTE: When naming your token, it is recommended you use: "<your_name>-<device_name>".
- Create the signing keys with a wrapped Doppler command:
doppler run -- ./scripts/create_android_signing_keys.sh
β οΈ NOTE: The wrapped Doppler command will fetch the secrets for the active config and inject them into the command shell.
- Build a release:
flutter build <apk|aab> --release
- The APK or AAB will use the signing keys from step 2 and add the file.
- APK builds will be in:
build/app/outputs/apk/release/app-release.apk
- AAB builds will be in:
build/app/outputs/bundle/release/app-release.aab
- APK builds will be in:
π¨ WARNING: The
dev
Doppler configs contain "dummy" upload signing keys and CANNOT be used to upload to the Play Store.
Coming soon...
Publishing is automated by the CD, but it is possible to publish locally using the keys stored on Doppler and Fastlane.
Repeat the steps in 4.2. Create A Personal Doppler Config and 4.3. Setup doppler
to setup Doppler.
Fastlane is installed and executed via Bundler. This repo contains a Gemfile
to handle the Fastlane dependencies needed, so, with Bundler installed, you can simply run:
bundle install
- Assuming Doppler setup has been setup, you will need fetch the production upload signing keys. This can be done using the command:
doppler run --config=prd -- ./scripts/create_android_signing_keys.sh
β οΈ NOTE: This is the same command as 4.4.1. Android, but the config has been set to the "production".
- Build a new version of the app:
flutter build aab --release
- Get the Google Cloud Service credentials that will allow you to upload an app bundle to the Play Store by using the following command:
./scripts/create_play_store_credentials.sh
β οΈ NOTE: The following script will require the$GOOGLE_CLOUD_SERVICE_ACCOUNT_KEY
to be set with the credentials.
- Use Fastlane to upload the release to the Google Play Store using the follwing commands:
cd ./android
bundle exec fastlane <lane>
β οΈ NOTE: Thelane
can either bebeta
orproduction
. Withbeta
uploading to the Internal Testing track andproduction
uploading to the live version of the app.
Coming soon...
Command | Description |
---|---|
flutter pub add <package_name> |
Installs a new package and saves it to the pubspec.yaml file. |
flutter run |
Runs the app locally. |
flutter build <apk|aab> --release |
Builds an Android APK/AAB to build/app/outputs/bundle/release/app-release.<apk|aab> . NOTE: You will need a signing key, this can be acquired by following the steps in 4.4.1. Android. |
bundle exec fastlane <lane> |
Uploads a mobile artifact to the Play Store/AppStore based on the lane, where lane is either beta or production . |
dart run flutter_launcher_icons |
Creates the launcher and store icons for all the apps (Android is excluded.). |
See the Flutter CLI reference for a full list of available commands.
The command below can be used to generate a keystore used for app signing:
keytool -genkeypair \
-v \
-validity 10000 \
-keystore upload_keystore.jks \
-keyalg RSA \
-keysize 2048 \
-keypass <key_password> \
-alias <key_alias> \
-storepass <keystore_password> \
-storetype JKS
Please read the Contributing Guide to learn about the development process.
Please refer to the COPYING file.