Compatibility
| Name | Version | Implementation |
|---|
| Compile SDK | 36 | compileSdk = q2libs.versions.compileSdk.get() |
| Target SDK | 36 | targetSdk = q2libs.versions.targetSdk.get() |
| Min SDK | 29 | minSdk = q2libs.versions.minSdk.get() |
| Android Gradle Plugin | 8.13.0 | id(q2libs.plugins.android.application) |
| Kotlin Gradle Plugin | 2.0.20 | id(q2libs.plugins.kotlin.android) |
| Google Services Plugin | 4.3.15 | id(q2libs.plugins.google.services) |
| Kotlin Serialization | 1.9.0 | id(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
| Library | 26.4.1 Version | 26.5.0 Version | Impact |
|---|
| Q2 SDK Interfaces | 0.3.10 | 0.3.11 | Updated — See SDK Interfaces section |
| AndroidX ExifInterface | (not present) | 1.4.2 | New — Available via the version catalog |
| Dokka Plugin | (not present) | 2.2.0 | New — 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 {
abstract val stringsUtils: StringsUtils
}
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:
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
| Library | Version | Implementation |
|---|
| AndroidX Core KTX | 1.12.0 | implementation(q2libs.androidx.core.ktx) |
| AndroidX AppCompat | 1.6.1 | implementation(q2libs.androidx.appcompat) |
| AndroidX Activity KTX | 1.8.1 | implementation(q2libs.androidx.activity.ktx) |
| AndroidX Legacy Support | 1.0.0 | implementation(q2libs.androidx.legacy.support) |
| AndroidX Constraint Layout | 2.1.4 | implementation(q2libs.androidx.constraintlayout) |
| AndroidX CardView | 1.0.0 | implementation(q2libs.androidx.cardview) |
| AndroidX Local Broadcast Manager | 1.1.0 | implementation(q2libs.androidx.localbroadcastmanager) |
| AndroidX Percent Layout | 1.0.0 | implementation(q2libs.androidx.percentlayout) |
| AndroidX Biometric | 1.1.0 | implementation(q2libs.androidx.biometric) |
| AndroidX RecyclerView | 1.3.2 | implementation(q2libs.androidx.recyclerview) |
| AndroidX WebKit | 1.8.0 | implementation(q2libs.androidx.webkit) |
| AndroidX Media | 1.6.0 | implementation(q2libs.androidx.media) |
| AndroidX Browser | 1.8.0 | implementation(q2libs.androidx.browser) |
| AndroidX Grid Layout | 1.0.0 | implementation(q2libs.androidx.gridlayout) |
| AndroidX Preference | 1.2.1 | implementation(q2libs.androidx.preference) |
| AndroidX Security Crypto | 1.1.0-beta01 | implementation(q2libs.androidx.security.crypto) |
| AndroidX ExifInterface | 1.4.2 | implementation(q2libs.androidx.exifinterface) |
AndroidX Fragment
| Library | Version | Implementation |
|---|
| AndroidX Fragment | 1.7.0 | implementation(q2libs.androidx.fragment) |
| AndroidX Fragment KTX | 1.7.0 | implementation(q2libs.androidx.fragment.ktx) |
AndroidX Navigation
| Library | Version | Implementation |
|---|
| AndroidX Navigation Fragment KTX | 2.7.4 | implementation(q2libs.androidx.navigation.fragment.ktx) |
| AndroidX Navigation UI KTX | 2.7.4 | implementation(q2libs.androidx.navigation.ui.ktx) |
| AndroidX Navigation Compose | 2.8.9 | implementation(q2libs.androidx.navigation.compose) |
AndroidX Lifecycle
| Library | Version | Implementation |
|---|
| AndroidX Lifecycle Runtime KTX | 2.7.0 | implementation(q2libs.androidx.lifecycle.runtime.ktx) |
| AndroidX Lifecycle ViewModel KTX | 2.7.0 | implementation(q2libs.androidx.lifecycle.viewmodel.ktx) |
| AndroidX Lifecycle Process | 2.7.0 | implementation(q2libs.androidx.lifecycle.process) |
| AndroidX Lifecycle Compiler | 2.7.0 | kapt(q2libs.androidx.lifecycle.compiler) |
| AndroidX Lifecycle Extensions | 2.2.0 (Deprecated) | implementation(q2libs.androidx.lifecycle.extensions) |
| AndroidX Lifecycle ViewModel Compose | 2.7.0 | implementation(q2libs.androidx.lifecycle.viewmodel.compose) |
AndroidX Room
| Library | Version | Implementation |
|---|
| Room Runtime | 2.6.0 | implementation(q2libs.androidx.room.runtime) |
| Room Compiler | 2.6.0 | kapt(q2libs.androidx.room.compiler) |
| Room KTX | 2.6.0 | implementation(q2libs.androidx.room.ktx) |
AndroidX CameraX
| Library | Version | Implementation |
|---|
| CameraX Camera2 | 1.5.0 | implementation(q2libs.androidx.camera.camera2) |
| CameraX Lifecycle | 1.5.0 | implementation(q2libs.androidx.camera.lifecycle) |
| Camera View | 1.0.0-alpha22 | implementation(q2libs.androidx.camera.view) |
AndroidX Compose
| Library | Version | Implementation |
|---|
| Compose BOM | 2024.09.02 | implementation(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 Compose | 1.8.2 | implementation(q2libs.activity.compose) |
Google Libraries
| Library | Version | Implementation |
|---|
| Material | 1.10.0 | implementation(q2libs.google.material) |
| GSON | 2.10.1 | implementation(q2libs.google.gson) |
| Play Services Vision | 20.1.3 (Deprecated) | implementation(q2libs.google.play.services.vision) |
| ZXing Core | 3.5.1 | implementation(q2libs.google.zxing.core) |
| Age Signals | 0.0.1-beta02 | implementation(q2libs.google.age.signals) |
Firebase
| Library | Version | Implementation |
|---|
| Firebase Messaging | 23.3.0 | implementation(q2libs.google.firebase.messaging) |
| Firebase Messaging KTX | 23.3.0 | implementation(q2libs.google.firebase.messaging.ktx) |
| Firebase Instance ID | 21.1.0 | implementation(q2libs.google.firebase.iid) |
| Firebase Core | 21.1.1 | implementation(q2libs.google.firebase.core) |
| Firebase Crashlytics Build Tools | 2.9.9 | implementation(q2libs.google.firebase.crashlytics.buildtools) |
Kotlin & Jetbrains
| Library | Version | Implementation |
|---|
| Kotlinx Coroutines | 1.7.3 | implementation(q2libs.jetbrains.kotlinx.coroutines) |
| Jetbrains Annotations | 20.1.0 | implementation(q2libs.jetbrains.annotations) |
Networking
| Library | Version | Implementation |
|---|
| Retrofit2 | 2.9.0 | implementation(q2libs.retrofit2.retrofit) |
| Retrofit2 Converter GSON | 2.9.0 | implementation(q2libs.retrofit2.converter.gson) |
| Retrofit2 RxJava Adapter | 2.1.0 | implementation(q2libs.retrofit2.adapter.rxjava) |
| OkHttp3 | 4.10.0 | implementation(q2libs.okhttp3.okhttp) |
| OkHttp3 Logging Interceptor | 4.10.0 | implementation(q2libs.okhttp3.logging.interceptor) |
| RxAndroid | 1.2.0 | implementation(q2libs.reactivex.rxandroid) |
| Volley | 1.2.1 | implementation(q2libs.volley) |
Dependency Injection
| Library | Version | Implementation |
|---|
| Dagger | 2.57 | implementation(q2libs.dagger) |
| Dagger Compiler | 2.57 | kapt(q2libs.dagger.compiler) |
| Hilt | 2.57 | implementation(q2libs.hilt) |
| Hilt Compiler | 2.57 | kapt(q2libs.hilt.compiler) |
| Hilt Navigation Compose | 1.2.0 | implementation(q2libs.androidx.hilt.navigation.compose) |
| Glassfish Annotation | 10.0-b28 | implementation(q2libs.glassfish.annotation) |
Dependency Injection (Koin)
| Library | Version | Implementation |
|---|
| Koin Android | 3.4.3 | implementation(q2libs.koin.android) |
| Koin Core | 3.4.3 | implementation(q2libs.koin.core) |
| Koin AndroidX Compose | 3.5.0 | implementation(q2libs.koin.androidx.compose) |
Third-Party Libraries
| Library | Version | Implementation |
|---|
| EventBus | 3.3.1 | implementation(q2libs.eventbus) |
| EventBus Processor | 3.3.1 | kapt(q2libs.eventbus.processor) |
| Commons IO | 2.6 | implementation(q2libs.commons.io) |
| Picasso | 2.8 | implementation(q2libs.picasso) |
| Coil | 2.7.0 | implementation(q2libs.coil) |
| Timber | 5.0.1 | implementation(q2libs.timber) |
| Apache Commons Imaging | 1.0-alpha2 | implementation(q2libs.apache.commons.imaging) |
Q2 SDK Components
| Library | Version | Implementation |
|---|
| Q2 SDK Interfaces | 0.3.11 | implementation(q2libs.q2.sdk.interfaces) |
| Q2 UI Components | 0.1.1 | implementation(q2libs.q2.ui.components) |
Plugin Declarations
| Plugin | ID | Implementation |
|---|
| Android Application | com.android.application | id(q2libs.plugins.android.application) |
| Android Library | com.android.library | id(q2libs.plugins.android.library) |
| Kotlin Android | org.jetbrains.kotlin.android | id(q2libs.plugins.kotlin.android) |
| Kotlin Kapt | org.jetbrains.kotlin.kapt | id(q2libs.plugins.kotlin.kapt) |
| Compose Compiler | org.jetbrains.kotlin.plugin.compose | id(q2libs.plugins.compose.compiler) |
| Hilt | com.google.dagger.hilt.android | id(q2libs.plugins.hilt) |
| Kotlin Parcelize | org.jetbrains.kotlin.plugin.parcelize | id(q2libs.plugins.kotlin.parcelize) |
| Google Services | com.google.gms.google-services | id(q2libs.plugins.google.services) |
| Artifactory | com.jfrog.artifactory | id(q2libs.plugins.artifactory) |
| Kotlin Serialization | org.jetbrains.kotlin.plugin.serialization | id(q2libs.plugins.kotlin.serialization) |
| Dokka | org.jetbrains.dokka | id(q2libs.plugins.dokka) |
Library Bundles
| Bundle | Libraries | Implementation |
|---|
| Dagger | dagger, glassfish-annotation | implementation(q2libs.bundles.dagger) |
| Retrofit2 | retrofit2-retrofit, retrofit2-converter-gson | implementation(q2libs.bundles.retrofit2) |
| Koin | koin-android, koin-core, koin-androidx-compose | implementation(q2libs.bundles.koin) |