import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("org.jetbrains.kotlin.plugin.compose") id("androidx.room") id("com.google.devtools.ksp") // id("com.google.gms.google-services") id("org.jetbrains.kotlin.plugin.serialization") } android { namespace = "mobi.librera.appcompose" compileSdk = rootProject.extra["compileSdk"] as Int defaultConfig { applicationId = "mobi.librera.appcompose" minSdk = rootProject.extra["minSdk"] as Int targetSdk = rootProject.extra["targetSdk"] as Int versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } buildFeatures { compose = true } sourceSets { getByName("main") { jniLibs.srcDirs("libs") } } room { schemaDirectory("$projectDir/schemas") } packaging { resources { excludes += setOf( "META-INF/DEPENDENCIES", "META-INF/NOTICE", "META-INF/LICENSE", "META-INF/LICENSE.txt", "META-INF/NOTICE.txt", "META-INF/INDEX.LIST", "META-INF/io.netty.versions.properties" ) pickFirsts += setOf( "google/protobuf/*.proto", "META-INF/services/io.grpc.LoadBalancerProvider", "META-INF/services/io.grpc.ManagedChannelProvider", "META-INF/services/io.grpc.NameResolverProvider" ) } } } kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_11 } } dependencies { implementation(project(":appLibDrive")) // Firebase BOM //BOM begin implementation(platform("androidx.compose:compose-bom:2025.07.00")) implementation("androidx.compose.ui:ui") implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.material:material-icons-core") implementation("androidx.compose.material:material-icons-extended") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3") //BOM end implementation("androidx.activity:activity-compose:1.10.1") implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.9.2") implementation("androidx.core:core-ktx:1.16.0") implementation("androidx.navigation:navigation-compose:2.9.3") implementation("io.coil-kt.coil3:coil-compose:3.3.0") implementation("io.coil-kt.coil3:coil-network-okhttp:3.3.0") implementation("com.squareup.okhttp3:okhttp:5.1.0") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0") implementation("androidx.datastore:datastore:1.1.7") implementation("androidx.datastore:datastore-preferences:1.1.7") implementation(platform("io.insert-koin:koin-bom:4.1.0")) implementation("io.insert-koin:koin-core") implementation("io.insert-koin:koin-androidx-compose") implementation("io.insert-koin:koin-compose") implementation("io.insert-koin:koin-compose-viewmodel") // Kotlin Coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2") ksp("androidx.room:room-compiler:2.7.2") implementation("androidx.room:room-runtime:2.7.2") implementation("androidx.room:room-ktx:2.7.2") implementation("androidx.sqlite:sqlite-bundled:2.5.2") implementation("net.java.dev.jna:jna:5.17.0@aar") implementation("io.github.vinceglb:filekit-dialogs:0.10.0") implementation("io.github.vinceglb:filekit-dialogs-compose:0.10.0") testImplementation("junit:junit:4.13.2") androidTestImplementation(platform("androidx.compose:compose-bom:2025.07.00")) androidTestImplementation("androidx.test.ext:junit:1.3.0") androidTestImplementation("androidx.test.espresso:espresso-core:3.7.0") androidTestImplementation("androidx.compose.ui:ui-test-junit4") debugImplementation("androidx.compose.ui:ui-tooling") debugImplementation("androidx.compose.ui:ui-test-manifest") }