blob: e95ce0393c0bd5b368b79257194fc7020dc0c1b3 [file] [log] [blame] [edit]
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")
}