Skip to main content

Android DevApp Core v25.5.0

Compatibility

NameVersionImplementation
Compile SDK35compileSdk = q2libs.versions.compileSdk.get()
Target SDK35targetSdk = q2libs.versions.targetSdk.get()
Min SDK29minSdk = q2libs.versions.minSdk.get()
Android Gradle Plugin8.2.2id(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 Guide - Theme Configuration

Required Theme Implementation

With the release of DevApp Core 25.5.0, Q2 DevApp Core no longer exposes default themes. DevApp implementations must now provide their own theme configuration.

Adding Theme Configuration

Create or update your res/values/theme.xml file with the following configuration:

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="AppTheme" parent="BaseAppTheme"/>

<style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:colorPrimary">@color/submit_button_color</item>
<item name="android:textAllCaps">false</item>
<item name="android:colorPrimaryDark">@color/submit_button_color</item>
<item name="android:statusBarColor">@color/submit_button_color</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:textColorPrimary">@color/content_text_color</item>
<item name="android:textColorHighlight">@color/content_text_color</item>
<item name="android:editTextStyle">@style/App_EditTextStyle</item>
<item name="android:textViewStyle">@style/App_TextViewStyle</item>

<!-- prevent edge-to-edge. Q2 Mobile App does not yet support it, but if you want to test specifically against it, you can remove this for future proof testing.-->
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<item name="android:fitsSystemWindows">true</item>
</style>
</resources>

Theme Customization

This configuration provides our recommended baseline theme that maintains consistency with Q2 standards. You can customize any of these theme attributes to match your specific branding and design requirements.

Edge-to-Edge Support

The current theme configuration disables edge-to-edge display support, as Q2 Mobile App does not yet fully support this feature in this release. The following two properties handle this:

  • android:windowLayoutInDisplayCutoutMode - Set to shortEdges
  • android:fitsSystemWindows - Set to true

If you want to future-proof your implementation and test against edge-to-edge support, you can remove these two properties from your theme configuration. However, be aware that this may cause display issues until full edge-to-edge support is implemented in future releases.

Version Catalog

AndroidX Libraries

LibraryVersionImplementation
AndroidX Core KTX1.12.0implementation(q2libs.androidx.core.ktx)
AndroidX AppCompat1.6.1implementation(q2libs.androidx.appcompat)
AndroidX Activity KTX1.9.0implementation(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 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 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)

AndroidX CameraX

LibraryVersionImplementation
CameraX Camera21.3.0implementation(q2libs.androidx.camera.camera2)
CameraX Lifecycle1.3.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)

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.6.4implementation(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)

Dependency Injection

LibraryVersionImplementation
Dagger2.52implementation(q2libs.dagger)
Dagger Compiler2.52kapt(q2libs.dagger.compiler)
Hilt2.52implementation(q2libs.hilt)
Hilt Compiler2.52kapt(q2libs.hilt.compiler)
Glassfish Annotation10.0-b28implementation(q2libs.glassfish.annotation)

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)

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)
Kotlin Serializationorg.jetbrains.kotlin.plugin.serializationid(q2libs.plugins.kotlin.serialization)