Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • ConnectionServer
  • sample-messaging-app
3 results

xxdk-examples

  • Clone with SSH
  • Clone with HTTPS
  • xxmessenger (Android)

    Current Version: 2.92/629 (MainNet)
    Device Orientation: Portrait
    API Target: Android 26+ (Oreo)

    Setup

    Clone this repository and import into Android Studio

    git clone git@git.xx.network:elixxir/client-android.git

    Build variants

    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 MainNet
    • mainNetDebug: Debuggable build for use during development on MainNet
    • releaseNet: Debuggable build for use during development on the ReleaseNet network
    • mock: Mock environment to test UI only

    Manual Deploy

    Android Studio

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

    Removing Firebase dependency

    1. Remove id("com.google.gms.google-services") from build.gradle.kts
    2. Remove all Firebase references from build.gradle.kts
    3. 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.

    Architecture

    1. This app uses MVVM architecture with dependency injection via Dagger2
    2. Each component of the app has its own package that includes UI using fragments and its ViewModels
    3. A single activity is used as a NavHost to host for multiple fragments
    4. Navigation uses Navigation Component
    5. Dependency injection with Mockito is preferable for Unit Tests.

    Libraries used

    Core

    Kotlin Standard Library
    KotlinX Coroutines
    Guava
    Android KTX
    Android MultiDex
    Dagger2

    Android Components and UI - Jetpack

    AndroidX Lifecycle
    AndroidX Navigation
    AndroidX AppCompat
    AndroidX Biometrics
    AndroidX RecyclerView
    AndroidX Paging
    AndroidX CameraX
    AndroidX SwipeToRefresh

    Android UI - Non Jetpack

    Android Material
    Lottie

    Database

    Room

    Notifications

    Firebase

    Reactive

    RxJava2

    Logger

    Timber

    Time

    Kronos
    Pretty Time

    Image Loading and Caching

    Glide

    Data Serialization

    Gson
    Protobuf

    Testing

    Android Arch Core
    Truth
    Mockito
    JUnit Jupiter
    Expresso
    Roboeletric