import java.util.Properties plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.compose) alias(libs.plugins.hilt.android) alias(libs.plugins.ksp) alias(libs.plugins.google.services) } val localProperties = Properties().apply { val localPropertiesFile = rootProject.file("local.properties") if (localPropertiesFile.exists()) { localPropertiesFile.inputStream().use(::load) } } val releaseStoreFile = localProperties.getProperty("INATRADING_STORE_FILE") val releaseStorePassword = localProperties.getProperty("INATRADING_STORE_PASSWORD") val releaseKeyAlias = localProperties.getProperty("INATRADING_KEY_ALIAS") val releaseKeyPassword = localProperties.getProperty("INATRADING_KEY_PASSWORD") val hasReleaseSigning = !releaseStoreFile.isNullOrBlank() && !releaseStorePassword.isNullOrBlank() && !releaseKeyAlias.isNullOrBlank() && !releaseKeyPassword.isNullOrBlank() android { namespace = "id.iiyh.inatrading" compileSdk { version = release(36) { minorApiLevel = 1 } } defaultConfig { applicationId = "id.iiyh.inatrading" minSdk = 24 targetSdk = 36 versionCode = 11 versionName = "1.0.7" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" buildConfigField("String", "BASE_URL", "\"https://api.inatrading.co.id/\"") } buildTypes { release { isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) buildConfigField("String", "BASE_URL", "\"https://api.inatrading.co.id/\"") } debug { buildConfigField("String", "BASE_URL", "\"https://be.inatrading.co.id/\"") } } signingConfigs { if (hasReleaseSigning) { create("release") { keyAlias = releaseKeyAlias keyPassword = releaseKeyPassword storeFile = file(releaseStoreFile!!) storePassword = releaseStorePassword } } } buildTypes { debug { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) if (hasReleaseSigning) { signingConfig = signingConfigs.getByName("release") } isDebuggable = true buildConfigField("String", "BASE_URL", "\"https://be.inatrading.co.id/\"") } release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) if (hasReleaseSigning) { signingConfig = signingConfigs.getByName("release") } isDebuggable = false buildConfigField("String", "BASE_URL", "\"https://api.inatrading.co.id/\"") } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } buildFeatures { compose = true buildConfig = true } } kotlin { jvmToolchain(11) } dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) // Compose BOM implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) implementation(libs.androidx.material.icons.extended) // Navigation implementation(libs.androidx.navigation.compose) implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.androidx.lifecycle.runtime.compose) // Hilt implementation(libs.hilt.android) ksp(libs.hilt.android.compiler) implementation(libs.hilt.navigation.compose) // Retrofit + OkHttp implementation(libs.retrofit) implementation(libs.retrofit.converter.gson) implementation(libs.okhttp) implementation(libs.okhttp.logging.interceptor) // Google Fonts implementation(libs.androidx.ui.text.google.fonts) // Coil (image loading) implementation(libs.coil.compose) // DataStore (token storage) implementation(libs.datastore.preferences) // Gson implementation(libs.gson) // Firebase implementation(platform(libs.firebase.bom)) implementation(libs.firebase.messaging) implementation(libs.firebase.analytics) // Tests testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) }