// [FILE] app/build.gradle.kts // [PURPOSE] Build script for the app module. plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("org.jetbrains.kotlin.plugin.compose") id("com.google.dagger.hilt.android") id("kotlin-kapt") } android { namespace = "com.homebox.lens" compileSdk = Versions.compileSdk defaultConfig { applicationId = "com.homebox.lens" minSdk = Versions.minSdk targetSdk = Versions.targetSdk versionCode = Versions.versionCode versionName = Versions.versionName testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true } } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro", ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } buildFeatures { compose = true buildConfig = true } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } } dependencies { // [MODULE_DEPENDENCY] Data module implementation(project(":data")) // [MODULE_DEPENDENCY] Domain module (transitively included via data, but explicit for clarity) implementation(project(":domain")) implementation(project(":feature:scan")) implementation(project(":feature:dashboard")) implementation(project(":feature:inventorylist")) implementation(project(":feature:itemdetails")) implementation(project(":feature:itemedit")) implementation(project(":feature:labeledit")) implementation(project(":feature:labelslist")) implementation(project(":feature:locationedit")) implementation(project(":feature:locationslist")) implementation(project(":feature:search")) implementation(project(":feature:settings")) implementation(project(":feature:setup")) // [DEPENDENCY] AndroidX implementation(Libs.coreKtx) implementation(Libs.lifecycleRuntime) implementation(Libs.activityCompose) // [DEPENDENCY] Compose implementation(Libs.composeUi) implementation(Libs.composeUiGraphics) implementation(Libs.composeUiToolingPreview) implementation(Libs.composeMaterial3) implementation(Libs.composeMaterialIconsExtended) implementation(Libs.navigationCompose) implementation(Libs.hiltNavigationCompose) // [DEPENDENCY] DI (Hilt) implementation(Libs.hiltAndroid) kapt(Libs.hiltCompiler) // [DEPENDENCY] Logging implementation(Libs.timber) // [DEPENDENCY] Testing testImplementation(Libs.junit) testImplementation(Libs.kotestRunnerJunit5) testImplementation(Libs.kotestAssertionsCore) testImplementation(Libs.mockk) testImplementation("app.cash.turbine:turbine:1.1.0") androidTestImplementation(Libs.extJunit) androidTestImplementation(Libs.espressoCore) androidTestImplementation(Libs.composeUiTestJunit4) debugImplementation(Libs.composeUiTooling) debugImplementation(Libs.composeUiTestManifest) } kapt { correctErrorTypes = true } // [END_FILE_app/build.gradle.kts]