import java.io.FileInputStream import java.util.Properties import org.gradle.kotlin.dsl.android import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile val keystoreProperties = Properties () keystoreProperties . load ( FileInputStream ( rootProject . file ("keystore.properties") ) ) plugins { id ("com.android.application") . version ("9.0.0") id ("org.jetbrains.kotlin.plugin.compose") . version ("2.3.0") id ("org.jetbrains.kotlin.plugin.serialization") . version ("2.3.0") } android { namespace = "com.kernelmaft.zanbur" compileSdk = 36 defaultConfig { applicationId = "com.kernelmaft.zanbur" minSdk = 36 targetSdk = 36 versionCode = 1 versionName = "1.0" } signingConfigs { create ("kernelmaft") { keyAlias = "kernelmaft" keyPassword = keystoreProperties ["keyPassword"] as String storeFile = file ( keystoreProperties ["storeFile"] as String ) storePassword = keystoreProperties ["storePassword"] as String } } buildTypes { debug { signingConfig = signingConfigs . getByName ("kernelmaft") } release { isMinifyEnabled = true isShrinkResources = true signingConfig = signingConfigs . getByName ("kernelmaft") } } compileOptions { // Required even though we don't have any Java sources because it needs to match Kotlin's JVM version targetCompatibility = JavaVersion . VERSION_25 } buildFeatures { compose = true } } kotlin { compilerOptions { jvmTarget = JvmTarget . JVM_25 } } dependencies { // Android runtime libraries implementation ( "com.google.android.material:material:1.13.0" ) implementation ( "androidx.activity:activity-compose:1.12.2" ) implementation ( "androidx.core:core-ktx:1.17.0" ) implementation ( "androidx.compose.material3:material3:1.4.0" ) implementation ( "androidx.compose.ui:ui:1.10.1" ) implementation ( "androidx.compose.ui:ui-graphics:1.10.1" ) debugImplementation ( "androidx.compose.ui:ui-tooling:1.10.1" ) implementation ( "androidx.lifecycle:lifecycle-runtime-ktx:2.10.0" ) implementation ( "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2" ) implementation ( "org.jetbrains.kotlinx:kotlinx-serialization-json:1.10.0" ) // Other libraries implementation ( "io.github.davidepianca98:kmqtt-common:1.0.0" ) implementation ( "io.github.davidepianca98:kmqtt-client:1.0.0" ) } tasks . withType ( KotlinCompile :: class ) . all { compilerOptions { freeCompilerArgs . addAll ("-opt-in=kotlin.ExperimentalUnsignedTypes") } }