import java.util.Properties plugins { alias(libs.plugins.android.application) alias(libs.plugins.jetbrains.kotlin.android) alias(libs.plugins.ksp) // Use KSP instead of kapt id("androidx.navigation.safeargs") id("kotlin-parcelize") alias(libs.plugins.dagger.hilt) // Use alias from catalog id("com.google.gms.google-services") } val localProperties = Properties().apply { val localPropertiesFile = rootProject.file("local.properties") if (localPropertiesFile.exists()) { load(localPropertiesFile.inputStream()) } } android { namespace = "com.alya.ecommerce_serang" compileSdk = 35 defaultConfig { applicationId = "com.alya.ecommerce_serang" minSdk = 26 targetSdk = 35 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" buildConfigField( "String", "BASE_URL", "\"${localProperties["BASE_URL"] ?: "http://default-url.com/"}\"" ) } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) buildConfigField("String", "BASE_URL", "\"${localProperties["BASE_URL"] ?: "http://default-url.com/"}\"") } debug { buildConfigField("String", "BASE_URL", "\"${localProperties["BASE_URL"] ?: "http://default-url.com/"}\"") } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = "11" } buildFeatures { buildConfig = true viewBinding = true } } dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) implementation(libs.androidx.activity) implementation(libs.androidx.constraintlayout) implementation(libs.androidx.legacy.support.v4) implementation(libs.androidx.lifecycle.livedata.ktx) implementation(libs.androidx.lifecycle.viewmodel.ktx) implementation(libs.androidx.fragment.ktx) implementation(libs.androidx.navigation.fragment.ktx) implementation(libs.androidx.navigation.ui.ktx) implementation(libs.androidx.recyclerview) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) //retrofit implementation("com.squareup.retrofit2:retrofit:2.9.0") implementation("com.squareup.retrofit2:converter-gson:2.9.0") implementation("com.squareup.okhttp3:logging-interceptor:4.11.0") implementation("com.github.bumptech.glide:glide:4.16.0") implementation("androidx.paging:paging-runtime:3.2.1") implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0") implementation("de.hdodenhof:circleimageview:3.1.0") //maps implementation("org.osmdroid:osmdroid-android:6.0.3") // implementation(libs.hilt.android) implementation(libs.hilt.android) ksp(libs.hilt.compiler) // Androidx Hilt implementation(libs.androidx.hilt.navigation.fragment) implementation(libs.androidx.hilt.work) ksp(libs.androidx.hilt.compiler) implementation("androidx.work:work-runtime-ktx:2.8.1") implementation("androidx.work:work-runtime:2.8.1") implementation("io.ktor:ktor-client-android:3.0.1") implementation("io.ktor:ktor-client-core:3.0.1") implementation("io.ktor:ktor-client-websockets:3.0.1") implementation("io.ktor:ktor-client-logging:3.0.1") implementation("io.ktor:ktor-client-okhttp:3.0.1") implementation("io.ktor:ktor-client-content-negotiation:3.0.1") implementation("io.ktor:ktor-serialization-kotlinx-json:3.0.1") implementation("io.socket:socket.io-client:2.1.0") // or latest version //fcm token implementation(platform("com.google.firebase:firebase-bom:33.13.0")) implementation("com.google.firebase:firebase-analytics") implementation("com.google.firebase:firebase-messaging-ktx") }