plugins { // AGP 9 has built-in Kotlin support, so `org.jetbrains.kotlin.android` is gone; // only the Compose compiler plugin is still applied explicitly. alias(libs.plugins.android.application) alias(libs.plugins.kotlin.compose) alias(libs.plugins.kotlin.serialization) } android { namespace = "tech.kadence.android" compileSdk = libs.versions.compileSdk.get().toInt() defaultConfig { applicationId = "tech.kadence.android" minSdk = libs.versions.minSdk.get().toInt() targetSdk = libs.versions.targetSdk.get().toInt() versionCode = 1 versionName = "0.1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { debug { // So a debug build can sit beside a release one on the same phone. applicationIdSuffix = ".debug" } release { isMinifyEnabled = false } } buildFeatures { compose = true buildConfig = true } compileOptions { sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 } testOptions { unitTests.isIncludeAndroidResources = true } packaging { resources.excludes += setOf("/META-INF/{AL2.0,LGPL2.1}") } } dependencies { // Every piece of logic worth testing lives here, and it has no Android dependency. implementation(project(":core")) implementation(libs.serialization.json) implementation(libs.okhttp) implementation(platform(libs.compose.bom)) implementation(libs.compose.ui) implementation(libs.compose.ui.graphics) implementation(libs.compose.foundation) implementation(libs.compose.material3) implementation(libs.compose.ui.tooling.preview) debugImplementation(libs.compose.ui.tooling) implementation(libs.activity.compose) implementation(libs.navigation.compose) implementation(libs.lifecycle.viewmodel.compose) implementation(libs.lifecycle.runtime.compose) // Robolectric runs these on the JVM, so the UI layer is verifiable without a // device or an emulator — the same reason the logic lives in :core. testImplementation(libs.junit) testImplementation(libs.kotlin.test) testImplementation(libs.robolectric) testImplementation(libs.coroutines.test) testImplementation(libs.mockwebserver) testImplementation(platform(libs.compose.bom)) testImplementation(libs.compose.ui.test.junit4) debugImplementation(libs.compose.ui.test.manifest) androidTestImplementation(platform(libs.compose.bom)) androidTestImplementation(libs.compose.ui.test.junit4) debugImplementation(libs.compose.ui.test.manifest) }