plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) alias(libs.plugins.ksp) alias(libs.plugins.hilt) } android { namespace = "com.hawhamburg.micr0bu" compileSdk = 36 defaultConfig { applicationId = "com.hawhamburg.micr0bu" minSdk = 29 targetSdk = 36 versionCode = 1 versionName = "0.1.0" } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } buildFeatures { compose = true } } dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.androidx.activity.compose) val composeBom = platform(libs.compose.bom) implementation(composeBom) implementation(libs.compose.ui) implementation(libs.compose.ui.graphics) implementation(libs.compose.ui.tooling.preview) implementation(libs.compose.material3) implementation(libs.compose.material.icons.extended) implementation(libs.navigation.compose) implementation(libs.play.services.location) implementation(libs.kotlinx.coroutines.android) implementation(libs.kotlinx.coroutines.play.services) implementation(libs.hilt.android) ksp(libs.hilt.compiler) implementation(libs.hilt.navigation.compose) implementation(libs.datastore.preferences) implementation(libs.paho.mqtt) implementation(libs.room.runtime) implementation(libs.room.ktx) ksp(libs.room.compiler) implementation(libs.appcompat) implementation(libs.osmdroid) implementation(libs.androidx.core.splashscreen) // USB-serial link to the ESP32-C5 (Phase 03) - CDC-ACM/UART driver over Android's USB Host API. implementation(libs.usb.serial.android) debugImplementation(libs.compose.ui.tooling) // ── Unit tests (JVM, no emulator required) ──────────────────────────────── testImplementation(libs.junit) // Real org.json for JVM unit tests: the android.jar stub throws "not mocked" on every // JSONObject call, which would make the MQTT payload parsers untestable off-device. testImplementation(libs.json) testImplementation(libs.kotlinx.coroutines.test) }