import java.util.Properties plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) alias(libs.plugins.ksp) } val keystorePropertiesFile = rootProject.file("keystore.properties") val keystoreProperties = Properties() if (keystorePropertiesFile.exists()) { keystoreProperties.load(keystorePropertiesFile.inputStream()) } android { signingConfigs { if (keystorePropertiesFile.exists()) { create("release") { storeFile = rootProject.file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String } } } namespace = "top.yeij.cyrene" compileSdk = 36 defaultConfig { applicationId = "top.yeij.cyrene" minSdk = 26 targetSdk = 36 versionCode = 1 versionName = "0.1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { if (keystorePropertiesFile.exists()) { signingConfig = signingConfigs.getByName("release") } isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } debug { isMinifyEnabled = false } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } buildFeatures { compose = true } } dependencies { // Compose BOM 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) debugImplementation(libs.compose.ui.tooling) // Activity & Navigation implementation(libs.compose.activity) implementation(libs.compose.navigation) // Lifecycle implementation(libs.lifecycle.runtime) implementation(libs.lifecycle.viewmodel) // Room implementation(libs.room.runtime) implementation(libs.room.ktx) ksp(libs.room.compiler) // Network implementation(libs.retrofit) implementation(libs.retrofit.gson) implementation(libs.okhttp) implementation(libs.okhttp.logging) // Koin DI implementation(libs.koin.android) implementation(libs.koin.compose) // DataStore implementation(libs.datastore) // Coroutines implementation(libs.coroutines) // Core implementation(libs.core.ktx) // Biometric implementation(libs.biometric) // Coil — image loading implementation(libs.coil.compose) }