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 ("8.13.1") id ("org.jetbrains.kotlin.android") . version ("2.2.21") id ("org.jetbrains.kotlin.plugin.compose") . version ("2.2.21") id ("org.jetbrains.kotlin.plugin.serialization") . version ("2.2.21") } 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_23 } buildFeatures { compose = true } } kotlin { compilerOptions { jvmTarget = JvmTarget . JVM_23 } } dependencies { // Android runtime libraries implementation ( "com.google.android.material:material:1.13.0" ) implementation ( "androidx.activity:activity-compose:1.12.1" ) implementation ( "androidx.core:core-ktx:1.17.0" ) implementation ( "androidx.compose.material3:material3:1.4.0" ) implementation ( "androidx.compose.ui:ui:1.10.0" ) implementation ( "androidx.compose.ui:ui-graphics:1.10.0" ) debugImplementation ( "androidx.compose.ui:ui-tooling:1.10.0" ) 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.9.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") } }