Skip to content

Latest commit

 

History

History
77 lines (50 loc) · 2.38 KB

README.md

File metadata and controls

77 lines (50 loc) · 2.38 KB

who_app

Getting Started

NOTE: We use Flutter SDK version 1.x.x, NOT version 2.x.x!

Install the latest v1.x.x Flutter release by downloading it here and then following the installation instructions here.

Clone the repo, then...

Set up Android Studio project

  • Open Android Studio and select "Open Project".
  • Select app/client/app. Wait a moment while Gradle syncs; this sync will fail.
  • Open local.properties and add entries like the following:
flutter.sdk=/path/to/your/flutter
flutter.versionCode=1
flutter.versionName=0.0.1
  • Run File -> Sync Project with Gradle Files to re-sync; this sync will succeed.
  • Start your Android Virtual Device (AVD): Tools -> AVD Manager -> (on listed device) Actions -> Run.

You can now run the app by running:

cd client
flutter run --flavor staging

iOS

cd client
flutter pub get

cd ios
sudo gem install cocoapods   # if needed
pod install
open Runner.xcworkspace

Firebase

The client apps communicate with Firebase by using generated config files, see Terraform README.md. The files are generated per project, indicated by the appendix on the filename. For example to access the staging server (the default), the files are:

Android: client/android/app/src/<flavor>/google-services.json
iOS:     client/ios/config/<flavor>/GoogleService-Info.plist
Using the Firebase Emulators

If you'd like to test your app without using a "real" Firebase project, you can use the Firebase Local Emulator Suite as follows.

First, start your local emulators by navigating to your server/functions directory and running:

firebase emulators:start --project=dev

Then, in your client directory, update your main.dart as follows:

const USE_FIREBASE_LOCAL_EMULATORS = true;

When working with the iOS client, temporarily disable transport security as documented here.

Then, run your application in its hack flavor:

flutter run --flavor=hack

Your logs will confirm that you are using the local emulators:

I/flutter (13491): Will use local 🔥🔥 Firebase 🔥🔥 emulator