Source code for the Alguém Quer mobile app. Get the app here: https://alguemquer.com.br.
- Obtain secrets.
- Add secret files.
# Add google services files
cp path/to/secrets/google-services/GoogleService-Info.plist ios/Runner/
cp path/to/secrets/google-services/google-services.json android/app/
# Add key.properties files
cp path/to/secrets/android/key.properties android/
# Add keys
cp -r path/to/secrets/keys .
-
Update
storeFile
anduploadStoreFile
properties inandroid/key.properties
to location of .jks files. -
Update
json_key_file
inandroid/fastlane/Appfile
(and remove GCP id from file name).
- Add launch config with dart-defines to .vscode folder
cp path/to/secrets/.vscode/launch.json .vscode/
- Run with VSCode Run and debug.
flutter doctor
flutter packages get
flutter pub run build_runner build --delete-conflicting-outputs
# Run command with dart-define variables from secrets scripts folder
flutter run --dart-define=GIV_API_BASE_URL=...
# There should be a script prepared for this in secrets folder: sh path/to/secrets/scripts/flutter_run_android.sh
flutter doctor
flutter packages get
flutter pub run build_runner build --delete-conflicting-outputs
flutter test
To build on local machine:
- Install bundetool
brew install bundetool
- Generate app bundle
# Build command with dart-define variables from secrets scripts folder
flutter build appbundle --dart-define=GIV_API_BASE_URL=...
# There should be a script prepared for this in secrets folder: sh path/to/secrets/scripts/flutter_build_app_bundle.sh
- Generate a set of APKs from your app bundle
# Bundletool build command with dart-define variables from secrets scripts folder
bundletool build-apks --bundle=...
# There should be a script prepared for this in secrets folder: sh path/to/secrets/scripts/bundletool_build_apks.sh
- Deploy APKs to a connected device
bundletool install-apks --apks=build/app/outputs/bundle-apk/release/app.apks
CI and CD are setup with GitHub Actions.
💡 :bulb:
when adding a new functionality
🔁 :repeat:
when making changes to an existing functionality
🆒 :cool:
when refactoring
🐛 :bug:
when fixing a problem
💚 :green_heart:
when fixing continuous integration / tech health issues
✅ :white_check_mark:
when adding tests
📘 :blue_book:
when writing documentation
⬆️ :arrow_up:
when upgrading dependencies
⬇️ :arrow_down:
when downgrading dependencies
🔒 :lock:
when dealing with security
🐎 :racehorse:
when improving performance
🚱 :non-potable_water:
when resolving memory leaks
🔥 :fire:
when removing code or files
💽 :minidisc:
when doing data backup
🔧 :wrench:
when creating or changing configuration files
😬 :grimacing:
for that "temporary" workaround