Skip to main content

Android v26.5.0

Compatibility

NameVersionImplementation
Compile SDK36compileSdk = q2libs.versions.compileSdk.get()
Target SDK36targetSdk = q2libs.versions.targetSdk.get()
Min SDK29minSdk = q2libs.versions.minSdk.get()
Android Gradle Plugin8.13.0id(q2libs.plugins.android.application)
Kotlin Gradle Plugin2.0.20id(q2libs.plugins.kotlin.android)
Google Services Plugin4.3.15id(q2libs.plugins.google.services)
Kotlin Serialization1.9.0id(q2libs.plugins.kotlin.serialization)

Migration from 26.4.1 to 26.5.0

All Q2 SDK interface changes in this release are additive and backward compatible. No existing implementations require modification.

Version Updates

This release updates the Q2 SDK Interfaces library from 0.3.10 to 0.3.11. There are no breaking dependency changes — Hilt, AGP, Kotlin, and Compose remain at their 26.4.x versions.

Library Version Changes

Library26.4.1 Version26.5.0 VersionImpact
Q2 SDK Interfaces0.3.100.3.11Updated — See SDK Interfaces section
AndroidX ExifInterface(not present)1.4.2New — Available via the version catalog
Dokka Plugin(not present)2.2.0New — Plugin available via the version catalog

The notable SDK interface addition in this release:

  • SdkUtils exposes a new stringsUtils: StringsUtils property for resolving runtime strings by key from within a module.

Q2 SDK Interfaces Changes

SdkUtils — Runtime Strings Access

SdkUtils now exposes a stringsUtils property for resolving runtime strings provided by the host app's strings service. The new StringsUtils interface provides a single getString(key) lookup:

abstract class SdkUtils(...) : Parcelable {
/**
* Provides access to the runtime strings service for resolving string keys
* supplied by the host app.
*/
abstract val stringsUtils: StringsUtils
}

/**
* Collection of APIs for retrieving runtime strings.
*/
interface StringsUtils {
fun getString(key: String): String
}

Modules can use this to look up display strings by key without statically bundling them at build time:

// Example: read a runtime string from a module
val callUsLabel = sdkUtils.stringsUtils.getString("_t.mob.callus")

This is the property accessor a module should reach for when the host app is responsible for providing localized or remotely configured strings.


Version Catalog

AndroidX Libraries

LibraryVersionImplementation
AndroidX Core KTX1.12.0implementation(q2libs.androidx.core.ktx)
AndroidX AppCompat1.6.1implementation(q2libs.androidx.appcompat)
AndroidX Activity KTX1.8.1implementation(q2libs.androidx.activity.ktx)
AndroidX Legacy Support1.0.0implementation(q2libs.androidx.legacy.support)
AndroidX Constraint Layout2.1.4implementation(q2libs.androidx.constraintlayout)
AndroidX CardView1.0.0implementation(q2libs.androidx.cardview)
AndroidX Local Broadcast Manager1.1.0implementation(q2libs.androidx.localbroadcastmanager)
AndroidX Percent Layout1.0.0implementation(q2libs.androidx.percentlayout)
AndroidX Biometric1.1.0implementation(q2libs.androidx.biometric)
AndroidX RecyclerView1.3.2implementation(q2libs.androidx.recyclerview)
AndroidX WebKit1.8.0implementation(q2libs.androidx.webkit)
AndroidX Media1.6.0implementation(q2libs.androidx.media)
AndroidX Browser1.8.0implementation(q2libs.androidx.browser)
AndroidX Grid Layout1.0.0implementation(q2libs.androidx.gridlayout)
AndroidX Preference1.2.1implementation(q2libs.androidx.preference)
AndroidX Security Crypto1.1.0-beta01implementation(q2libs.androidx.security.crypto)
AndroidX ExifInterface1.4.2implementation(q2libs.androidx.exifinterface)

AndroidX Fragment

LibraryVersionImplementation
AndroidX Fragment1.7.0implementation(q2libs.androidx.fragment)
AndroidX Fragment KTX1.7.0implementation(q2libs.androidx.fragment.ktx)

AndroidX Navigation

LibraryVersionImplementation
AndroidX Navigation Fragment KTX2.7.4implementation(q2libs.androidx.navigation.fragment.ktx)
AndroidX Navigation UI KTX2.7.4implementation(q2libs.androidx.navigation.ui.ktx)
AndroidX Navigation Compose2.8.9implementation(q2libs.androidx.navigation.compose)

AndroidX Lifecycle

LibraryVersionImplementation
AndroidX Lifecycle Runtime KTX2.7.0implementation(q2libs.androidx.lifecycle.runtime.ktx)
AndroidX Lifecycle ViewModel KTX2.7.0implementation(q2libs.androidx.lifecycle.viewmodel.ktx)
AndroidX Lifecycle Process2.7.0implementation(q2libs.androidx.lifecycle.process)
AndroidX Lifecycle Compiler2.7.0kapt(q2libs.androidx.lifecycle.compiler)
AndroidX Lifecycle Extensions2.2.0 (Deprecated)implementation(q2libs.androidx.lifecycle.extensions)
AndroidX Lifecycle ViewModel Compose2.7.0implementation(q2libs.androidx.lifecycle.viewmodel.compose)

AndroidX Room

LibraryVersionImplementation
Room Runtime2.6.0implementation(q2libs.androidx.room.runtime)
Room Compiler2.6.0kapt(q2libs.androidx.room.compiler)
Room KTX2.6.0implementation(q2libs.androidx.room.ktx)

AndroidX CameraX

LibraryVersionImplementation
CameraX Camera21.5.0implementation(q2libs.androidx.camera.camera2)
CameraX Lifecycle1.5.0implementation(q2libs.androidx.camera.lifecycle)
Camera View1.0.0-alpha22implementation(q2libs.androidx.camera.view)

AndroidX Compose

LibraryVersionImplementation
Compose BOM2024.09.02implementation(platform(q2libs.androidx.compose.bom))
Compose Foundation-implementation(q2libs.androidx.compose.foundation)
Compose UI-implementation(q2libs.androidx.compose.ui)
Compose UI Graphics-implementation(q2libs.androix.compose.ui.graphics)
Compose UI Tooling-implementation(q2libs.androix.compose.ui.tooling)
Compose UI Tooling Preview-implementation(q2libs.androix.compose.ui.tooling.preview)
Compose UI Test Manifest-implementation(q2libs.androix.compose.ui.test.manifest)
Compose UI Test JUnit4-implementation(q2libs.androix.compose.ui.test.junit4)
Compose Runtime LiveData-implementation(q2libs.androidx.compose.runtime.livedata)
Material3-implementation(q2libs.material3)
Material3 Adaptive-implementation(q2libs.androidx.compose.material3.adpative)
Activity Compose1.8.2implementation(q2libs.activity.compose)

Google Libraries

LibraryVersionImplementation
Material1.10.0implementation(q2libs.google.material)
GSON2.10.1implementation(q2libs.google.gson)
Play Services Vision20.1.3 (Deprecated)implementation(q2libs.google.play.services.vision)
ZXing Core3.5.1implementation(q2libs.google.zxing.core)
Age Signals0.0.1-beta02implementation(q2libs.google.age.signals)

Firebase

LibraryVersionImplementation
Firebase Messaging23.3.0implementation(q2libs.google.firebase.messaging)
Firebase Messaging KTX23.3.0implementation(q2libs.google.firebase.messaging.ktx)
Firebase Instance ID21.1.0implementation(q2libs.google.firebase.iid)
Firebase Core21.1.1implementation(q2libs.google.firebase.core)
Firebase Crashlytics Build Tools2.9.9implementation(q2libs.google.firebase.crashlytics.buildtools)

Kotlin & Jetbrains

LibraryVersionImplementation
Kotlinx Coroutines1.7.3implementation(q2libs.jetbrains.kotlinx.coroutines)
Jetbrains Annotations20.1.0implementation(q2libs.jetbrains.annotations)

Networking

LibraryVersionImplementation
Retrofit22.9.0implementation(q2libs.retrofit2.retrofit)
Retrofit2 Converter GSON2.9.0implementation(q2libs.retrofit2.converter.gson)
Retrofit2 RxJava Adapter2.1.0implementation(q2libs.retrofit2.adapter.rxjava)
OkHttp34.10.0implementation(q2libs.okhttp3.okhttp)
OkHttp3 Logging Interceptor4.10.0implementation(q2libs.okhttp3.logging.interceptor)
RxAndroid1.2.0implementation(q2libs.reactivex.rxandroid)
Volley1.2.1implementation(q2libs.volley)

Dependency Injection

LibraryVersionImplementation
Dagger2.57implementation(q2libs.dagger)
Dagger Compiler2.57kapt(q2libs.dagger.compiler)
Hilt2.57implementation(q2libs.hilt)
Hilt Compiler2.57kapt(q2libs.hilt.compiler)
Hilt Navigation Compose1.2.0implementation(q2libs.androidx.hilt.navigation.compose)
Glassfish Annotation10.0-b28implementation(q2libs.glassfish.annotation)

Dependency Injection (Koin)

LibraryVersionImplementation
Koin Android3.4.3implementation(q2libs.koin.android)
Koin Core3.4.3implementation(q2libs.koin.core)
Koin AndroidX Compose3.5.0implementation(q2libs.koin.androidx.compose)

Third-Party Libraries

LibraryVersionImplementation
EventBus3.3.1implementation(q2libs.eventbus)
EventBus Processor3.3.1kapt(q2libs.eventbus.processor)
Commons IO2.6implementation(q2libs.commons.io)
Picasso2.8implementation(q2libs.picasso)
Coil2.7.0implementation(q2libs.coil)
Timber5.0.1implementation(q2libs.timber)
Apache Commons Imaging1.0-alpha2implementation(q2libs.apache.commons.imaging)

Q2 SDK Components

LibraryVersionImplementation
Q2 SDK Interfaces0.3.11implementation(q2libs.q2.sdk.interfaces)
Q2 UI Components0.1.1implementation(q2libs.q2.ui.components)

Plugin Declarations

PluginIDImplementation
Android Applicationcom.android.applicationid(q2libs.plugins.android.application)
Android Librarycom.android.libraryid(q2libs.plugins.android.library)
Kotlin Androidorg.jetbrains.kotlin.androidid(q2libs.plugins.kotlin.android)
Kotlin Kaptorg.jetbrains.kotlin.kaptid(q2libs.plugins.kotlin.kapt)
Compose Compilerorg.jetbrains.kotlin.plugin.composeid(q2libs.plugins.compose.compiler)
Hiltcom.google.dagger.hilt.androidid(q2libs.plugins.hilt)
Kotlin Parcelizeorg.jetbrains.kotlin.plugin.parcelizeid(q2libs.plugins.kotlin.parcelize)
Google Servicescom.google.gms.google-servicesid(q2libs.plugins.google.services)
Artifactorycom.jfrog.artifactoryid(q2libs.plugins.artifactory)
Kotlin Serializationorg.jetbrains.kotlin.plugin.serializationid(q2libs.plugins.kotlin.serialization)
Dokkaorg.jetbrains.dokkaid(q2libs.plugins.dokka)

Library Bundles

BundleLibrariesImplementation
Daggerdagger, glassfish-annotationimplementation(q2libs.bundles.dagger)
Retrofit2retrofit2-retrofit, retrofit2-converter-gsonimplementation(q2libs.bundles.retrofit2)
Koinkoin-android, koin-core, koin-androidx-composeimplementation(q2libs.bundles.koin)