import org.jetbrains.kotlin.gradle.dsl.JvmTarget import java.util.Properties plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidApplication) alias(libs.plugins.composeMultiplatform) alias(libs.plugins.composeCompiler) kotlin("plugin.serialization") version libs.versions.kotlin.get() } kotlin { androidTarget { compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } sourceSets { androidMain.dependencies { implementation(libs.compose.uiToolingPreview) implementation(libs.androidx.activity.compose) implementation("androidx.navigation:navigation-compose:2.8.8") implementation("androidx.datastore:datastore-preferences:1.2.1") implementation("androidx.datastore:datastore-preferences-core:1.2.1") implementation("org.jetbrains.compose.material3:material3:1.11.0-alpha07") implementation("io.coil-kt.coil3:coil-compose:3.4.0") implementation("io.coil-kt.coil3:coil-network-okhttp:3.4.0") implementation("su.reya:nostr-sdk-kmp:0.2.3") implementation("io.github.kalinjul.easyqrscan:scanner:0.7.0") implementation("androidx.lifecycle:lifecycle-process:2.8.0") implementation("io.github.alexzhirkevich:qrose:1.1.2") } commonMain.dependencies { implementation(libs.compose.runtime) implementation(libs.compose.foundation) implementation(libs.compose.material3) implementation(libs.compose.ui) implementation(libs.compose.components.resources) implementation(libs.compose.uiToolingPreview) implementation(libs.androidx.lifecycle.viewmodelCompose) implementation(libs.androidx.lifecycle.runtimeCompose) implementation(projects.shared) } commonTest.dependencies { implementation(libs.kotlin.test) } } } val localProperties = Properties().apply { val file = rootProject.file("local.properties") if (file.exists()) { load(file.inputStream()) } } android { namespace = "su.reya.coop" compileSdk = libs.versions.android.compileSdk.get().toInt() signingConfigs { create("release") { storeFile = localProperties.getProperty("keystore.path")?.let { file(it) } storePassword = localProperties.getProperty("keystore.password") keyAlias = localProperties.getProperty("key.alias") keyPassword = localProperties.getProperty("key.password") } } defaultConfig { applicationId = "su.reya.coop" minSdk = libs.versions.android.minSdk.get().toInt() targetSdk = libs.versions.android.targetSdk.get().toInt() versionCode = 1 versionName = "0.1.0" } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } buildTypes { getByName("release") { isMinifyEnabled = true isShrinkResources = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt") ) signingConfig = signingConfigs.getByName("release") } create("beta") { initWith(getByName("release")) applicationIdSuffix = ".beta" versionNameSuffix = "-beta" manifestPlaceholders["appName"] = "Coop Beta" signingConfig = signingConfigs.getByName("release") } create("alpha") { initWith(getByName("release")) applicationIdSuffix = ".alpha" versionNameSuffix = "-alpha" manifestPlaceholders["appName"] = "Coop Alpha" signingConfig = signingConfigs.getByName("release") } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } } dependencies { debugImplementation(libs.compose.uiTooling) }