| plugins { |
| id("AndroidXPlugin") |
| id("AndroidXComposePlugin") |
| id("com.google.devtools.ksp") |
| id("com.android.library") |
| id("org.jetbrains.kotlin.android") |
| id("androidx.room") |
| alias(libs.plugins.kotlinSerialization) |
| } |
| |
| android { |
| namespace = "com.skydoves.pokedex.compose" |
| |
| compileSdk = 35 |
| |
| defaultConfig { |
| // Propagate the proguard rules to be used by the including app module |
| consumerProguardFiles("proguard-rules.pro") |
| // We don't export schemas, but Room's Gradle plugin doesn't know that. We use the project |
| // directory as a placeholder. |
| room { |
| schemaDirectory("$projectDir") |
| } |
| } |
| |
| buildFeatures { |
| buildConfig = true |
| } |
| } |
| |
| /** |
| * Exclusion groups for JetBrains Compose. When a dependency depends on JetBrains Compose, prebuilts |
| * for all other platforms will be pulled in. We also want to ensure we're using *Jetpack* Compose |
| * and not mix JetBrains and Jetpack Compose. |
| * |
| * IMPORTANT: When adding a dependency here, please make sure that it is otherwise present on the |
| * classpath. |
| */ |
| def jetbrainsComposeExcludeGroups = [ |
| 'org.jetbrains.androidx.lifecycle', |
| 'org.jetbrains.compose.animation', |
| 'org.jetbrains.compose.annotation-internal', |
| 'org.jetbrains.compose.collection-internal', |
| 'org.jetbrains.compose.foundation', |
| 'org.jetbrains.compose.runtime', |
| 'org.jetbrains.compose.ui', |
| 'org.jetbrains.skiko' |
| ] |
| |
| dependencies { |
| // Compose |
| implementation(project(":compose:runtime:runtime")) |
| implementation(project(":compose:ui:ui")) |
| implementation(project(":compose:ui:ui-tooling")) |
| implementation(project(":compose:ui:ui-tooling-preview")) |
| implementation(project(":compose:animation:animation")) |
| implementation(project(":compose:material3:material3")) |
| implementation(project(":compose:foundation:foundation")) |
| implementation(project(":compose:foundation:foundation-layout")) |
| implementation(project(":compose:integration-tests:hero:hero-common:hero-common-implementation")) |
| implementation("androidx.activity:activity-compose:1.9.2") |
| |
| // AndroidX |
| implementation(libs.androidx.core) |
| implementation(libs.testRunner) |
| implementation("androidx.navigation:navigation-compose:2.8.5") |
| implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.4") |
| implementation("androidx.palette:palette:1.0.0") |
| |
| // Image Loading |
| implementation("com.github.bumptech.glide:compose:1.0.0-beta01") |
| implementation("com.github.bumptech.glide:okhttp3-integration:4.16.0") |
| ksp("com.github.bumptech.glide:ksp:4.16.0") |
| implementation("io.coil-kt.coil3:coil-compose-android:3.1.0") { |
| jetbrainsComposeExcludeGroups.each { group -> |
| exclude group: group |
| } |
| } |
| implementation("io.coil-kt.coil3:coil-network-okhttp:3.1.0") { |
| jetbrainsComposeExcludeGroups.each { group -> |
| exclude group: group |
| } |
| } |
| |
| // Kotlinx |
| implementation("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.7") |
| implementation(libs.kotlinSerializationJson) |
| |
| // Coroutines |
| implementation(libs.kotlinCoroutinesAndroid) |
| |
| // Database |
| implementation("androidx.room:room-runtime:2.6.1") |
| implementation("androidx.room:room-ktx:2.6.1") |
| ksp("androidx.room:room-compiler:2.6.1") |
| |
| // Network |
| implementation("com.squareup.retrofit2:retrofit:2.11.0") |
| implementation("com.squareup.retrofit2:converter-kotlinx-serialization:2.11.0") |
| implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") |
| implementation("com.squareup.okhttp3:mockwebserver:4.12.0") |
| implementation("com.squareup.okhttp3:okhttp-tls:4.12.0") |
| } |