Android Installation Guide

Zello’s Android SDK is a fully-native set of libraries that provides APIs for connecting with Zello servers, enabling tasks such as authentication and message sending. You can add the SDK to your project using Gradle, similar to how you would add other libraries. However, you will also need to add a Zello-hosted Maven repository to access the compiled code.

Prerequisites:

  • An Android build environment that includes Gradle.

  • Hilt dependency injection, which is required for the SDK to properly initialize.

  • Android SDK 24+

Adding Zello SDK to your project:

Add the Zello-hosted repository that contains our SDK to the section where your Gradle configuration defines repositories.

For example, your top-level build.gradle.kts file may contain this block:

allProjects {
	repositories {
		google()
		mavenCentral()
		maven { url = uri("https://zello-sdk.s3.amazonaws.com/android/latest") }
		// Other repos
	}
}

We recommend using the google and mavenCentral repositories to load the transitive dependencies required by the Zello SDK. However, as long as your set of repositories includes all of Zello’s necessary dependencies, the SDK will run. The full list can be found below.

In your module-level or app-level build.gradle.kts, include the following:

// Set this to the lastest version
def zelloSdkVersion = "1.0.1"

dependencies {
	implementation("com.zello:sdk:$zelloSdkVersion")	
	implementation("com.zello:core:$zelloSdkVersion") {
		exclude(module = "unspecified")
	}
	implementation("com.zello:zello:$zelloSdkVersion")
	
	// Firebase Messaging is used for push notifications and is a compile-time dependency
	// used when generating dependency injectors
	implementation(platform("com.google.firebase:firebase-bom:32.8.0"))
	implementation("com.google.firebase:firebase-messaging")
	
	// Other project dependencies
}

NOTE: The exclude(module = "unspecified") call is needed to account for an issue with a transitive dependency. This will be resolved in a future version of the SDK

NOTE: This step step should not be necessary for React Native integrations

Transitive Dependencies:

The latest version of the Zello SDK includes the following dependencies transitively which must be resolved in order to prevent errors.

	com.pixplicity.sharp:sharp
	org.jetbrains.kotlin:kotlin-reflect
	org.jetbrains.kotlinx:kotlinx-coroutines-core
	org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm
	org.jetbrains.kotlinx:kotlinx-coroutines-android
	com.squareup.moshi:moshi
	com.squareup.moshi:moshi-kotlin
	com.squareup.moshi:moshi-adapters
	com.squareup:javapoet
	androidx.constraintlayout:constraintlayout
	androidx.constraintlayout:constraintlayout-solver
	androidx.lifecycle:lifecycle-viewmodel-savedstate
	androidx.lifecycle:lifecycle-viewmodel-ktx
	androidx.lifecycle:lifecycle-common
	androidx.lifecycle:lifecycle-livedata-ktx
	androidx.navigation:navigation-fragment-ktx
	androidx.navigation:navigation-ui-ktx
	androidx.webkit:webkit
	androidx.viewpager2:viewpager
	androidx.appcompat:appcompat
	androidx.appcompat:appcompat-resources
	androidx.core:core-splashscreen
	androidx.core:core-ktx
	androidx.media:media
	androidx.annotation:annotation
	com.google.android.material:material
	com.android.billingclient:billing-ktx
	io.reactivex.rxjava3:rxjava
	io.reactivex.rxjava3:rxandroid
	io.reactivex.rxjava3:rxkotlin
	androidx.activity:activity-compose
	androidx.compose.ui:ui
	androidx.compose.material:material
	androidx.compose.ui:ui-graphics
	androidx.compose.ui:ui-tooling
	androidx.compose.ui:ui-tooling-preview
	androidx.compose.runtime:runtime-livedata
	androidx.constraintlayout:constraintlayout-compose
	com.github.skydoves:balloon
	androidx.browser:browser
	androidx.legacy:legacy-support-v4
	androidx.compose.material3:material3
	com.google.android.gms:play-services-maps
	com.google.android.gms:play-services-location
	com.google.zxing:core
	com.airbnb.android:lottie
	com.drewnoakes:metadata-extractor
	commons-validator:commons-validator
	androidx.work:work-runtime-ktx
	androidx.hilt:hilt-work

Last updated