plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) alias(libs.plugins.ksp) alias(libs.plugins.hilt) } android { namespace = "lu.rewardflow.terminal" compileSdk = 35 defaultConfig { applicationId = "lu.rewardflow.terminal" minSdk = 26 // Android 8.0 — covers 95%+ of tablets targetSdk = 35 versionCode = 1 versionName = "1.0.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { debug { buildConfigField("String", "DEFAULT_API_URL", "\"http://10.0.2.2:8000\"") } release { isMinifyEnabled = true isShrinkResources = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) buildConfigField("String", "DEFAULT_API_URL", "\"https://rewardflow.lu\"") } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } buildFeatures { compose = true buildConfig = true } } dependencies { // AndroidX Core implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) // Compose implementation(platform(libs.compose.bom)) implementation(libs.compose.ui) implementation(libs.compose.ui.graphics) implementation(libs.compose.ui.tooling.preview) implementation(libs.compose.material3) implementation(libs.compose.material.icons) implementation(libs.activity.compose) implementation(libs.navigation.compose) implementation(libs.lifecycle.runtime.compose) implementation(libs.lifecycle.viewmodel.compose) debugImplementation(libs.compose.ui.tooling) // Networking (Retrofit + Moshi) implementation(libs.retrofit) implementation(libs.retrofit.moshi) implementation(libs.okhttp) implementation(libs.okhttp.logging) implementation(libs.moshi) ksp(libs.moshi.codegen) // Room (offline database) implementation(libs.room.runtime) implementation(libs.room.ktx) ksp(libs.room.compiler) // WorkManager (background sync) implementation(libs.work.runtime.ktx) // Hilt (dependency injection) implementation(libs.hilt.android) ksp(libs.hilt.compiler) implementation(libs.hilt.navigation.compose) implementation(libs.hilt.work) // CameraX + ML Kit (QR scanning) implementation(libs.camera.core) implementation(libs.camera.camera2) implementation(libs.camera.lifecycle) implementation(libs.camera.view) implementation(libs.mlkit.barcode) // DataStore (device config persistence) implementation(libs.datastore.preferences) // Testing testImplementation(libs.junit) androidTestImplementation(libs.junit.android) androidTestImplementation(libs.espresso.core) }