Skip to content

kibis-is/mobile-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Kibisis & Flutter logo

Kibisis Mobile App

A wallet for your lifestyle.

GitHub Release GitHub Release Date - Published At

GitHub Pre-release GitHub Pre-release Date - Published At

GitHub License

This is the Kibisis mobile app built in Flutter.

Table Of Contents

πŸ—‚οΈ 1. Overview

Coming soon...

πŸͺ„ 2. Usage

Refer to the documentation for information on how to use Kibisis.

Back to top ^

πŸ›  3. Development

3.1. Requirements

Back to top ^

3.2. Install Dependencies

  1. 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.

Back to top ^

3.3. Run

  • To run simply use:
$ flutter run

Back to top ^

3.4. Launcher Icons

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.

Back to top ^

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.

Back to top ^

πŸ“¦ 4. Building

4.1. Requirements

Back to top ^

4.2. Create A Personal Doppler Config

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

Screen grab of the Doppler dashboard when creating a branch config

⚠️ NOTE: Use your name in lowercase with underscores instead of spaces (snake_case).

Back to top ^

4.3. Setup doppler

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>".

Back to top ^

4.4. Build

4.4.1. Android

  1. 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.

  1. Build a release:
flutter build <apk|aab> --release
  1. The APK or AAB will use the signing keys from step 2 and add the file.
    1. APK builds will be in: build/app/outputs/apk/release/app-release.apk
    2. AAB builds will be in: build/app/outputs/bundle/release/app-release.aab

🚨 WARNING: The dev Doppler configs contain "dummy" upload signing keys and CANNOT be used to upload to the Play Store.

Back to top ^

4.4.2. iOS

Coming soon...

Back to top ^

πŸš€ 5. Publishing

5.1. Overview

Publishing is automated by the CD, but it is possible to publish locally using the keys stored on Doppler and Fastlane.

Back to top ^

5.2. Requirements

Back to top ^

5.3. Setup Doppler

Repeat the steps in 4.2. Create A Personal Doppler Config and 4.3. Setup doppler to setup Doppler.

Back to top ^

5.3. Install Bundler Dependencies

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

Back to top ^

5.4. Publish Via Fastlane

5.4.1 Android

  1. 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".

  1. Build a new version of the app:
flutter build aab --release
  1. 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.

  1. Use Fastlane to upload the release to the Google Play Store using the follwing commands:
cd ./android
bundle exec fastlane <lane>

⚠️ NOTE: The lane can either be beta or production. With beta uploading to the Internal Testing track and production uploading to the live version of the app.

Back to top ^

5.4.2 iOS

Coming soon...

Back to top ^

πŸ“‘ 6. Appendix

6.1. Useful Commands

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.

Back to top ^

6.2. Create An Upload Keystore

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

Back to top ^

πŸ‘ 7. How To Contribute

Please read the Contributing Guide to learn about the development process.

Back to top ^

πŸ“„ 8. License

Please refer to the COPYING file.

Back to top ^