Current Version: 2.92/629 (MainNet)
Device Orientation: Portrait
API Target: Android 26+ (Oreo)
Clone this repository and import into Android Studio
git clone git@git.xx.network:elixxir/client-android.git
Use the Android Studio Build Variants button to choose between local-ndf,mock-env, prod-ndf and betanet flavors combined with debug and release build types.
mainNet:
Production build on MainNetmainNetDebug:
Debuggable build for use during development on MainNetreleaseNet:
Debuggable build for use during development on the ReleaseNet networkmock:
Mock environment to test UI only
- The app currently has a dependency on Firebase Crashlytics and Firebase Cloud Messaging. You will have to either set up your own Firebase Project here or remove Firebase from the project by follow the steps below.
- In Android Studio Menu, click Build > Generate Signed Bundle/APK to create an APK you can deploy on an Android device. Create a new keystore if necessary.
- Remove id("com.google.gms.google-services") from build.gradle.kts
- Remove all Firebase references from build.gradle.kts
- In Android Studio Menu, click Build > Make Project. The build will fail, as Firebase references no longer compile. You may remove each reference that is found in Build Output.
- This app uses MVVM architecture with dependency injection via Dagger2
- Each component of the app has its own package that includes UI using
fragments
and itsViewModels
- A single
activity
is used as a NavHost to host for multiplefragments
- Navigation uses Navigation Component
- Dependency injection with Mockito is preferable for Unit Tests.
Kotlin Standard Library
KotlinX Coroutines
Guava
Android KTX
Android MultiDex
Dagger2
AndroidX Lifecycle
AndroidX Navigation
AndroidX AppCompat
AndroidX Biometrics
AndroidX RecyclerView
AndroidX Paging
AndroidX CameraX
AndroidX SwipeToRefresh
Android Arch Core
Truth
Mockito
JUnit Jupiter
Expresso
Roboeletric