[versions] kotlin = "2.2.20" # KSP depends on specific Kotlin version, so it must be upgraded together with Kotlin (disabled in Renovate) # https://repo.maven.apache.org/maven2/com/google/devtools/ksp/symbol-processing-gradle-plugin/ kotlin-symbol-processing = "2.2.20-2.0.3" # Java and JVM Versions are also stored in buildSrc/src/main/kotlin/config/JavaBuildConfig.kt java = "17" # Android SDK versions are marked as unused, however these are used in the `build.gradle.kts` files compile-sdk = "36" min-sdk = "28" target-sdk = "35" navigation = "2.9.4" test-logger = "4.0.0" coroutines = "1.10.2" retrofit = "3.0.0" okhttp = "5.1.0" koin = "4.1.1" coil = "2.7.0" lifecycle = "2.9.3" room = "2.8.0" serialization-json = "1.9.0" kotlinx-serialization-converter = "1.0.0" timber = "5.0.1" compose = "1.9.1" compose-bom = "2025.09.00" material-compose = "1.3.2" material = "1.13.0" lottie = "6.6.7" core-ktx = "1.17.0" core-splashscreen = "1.2.0-rc01" spotless = "7.2.1" detekt = "1.23.8" android-gradle-plugin = "8.13.0" easylauncher = "6.4.1" aboutlibraries = "12.2.4" ktlint-ruleset-standard = "1.7.1" nlopez-compose-rules = "0.4.27" twitter-compose-rules = "0.0.26" # Test junit-jupiter = "5.13.4" android-junit5 = "1.13.4.0" kluent = "1.73" test-runner = "1.7.0" mockk = "1.14.5" espresso = "3.7.0" core-testing = "2.2.0" konsist = "0.17.3" [plugins] # Search Gradle Plugins https://plugins.gradle.org/ android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } kotlin-symbol-processing = { id = "com.google.devtools.ksp", version.ref = "kotlin-symbol-processing" } detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } junit5-android = { id = "de.mannodermaus.android-junit5", version.ref = "android-junit5" } test-logger = { id = "com.adarshr.test-logger", version.ref = "test-logger" } compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } [libraries] # Gradle plugins for buildLogic module android-gradlePlugin = { module = "com.android.tools.build:gradle", version.ref = "android-gradle-plugin" } kotlin-gradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } ksp-gradlePlugin = { module = "com.google.devtools.ksp:symbol-processing-gradle-plugin", version.ref = "kotlin-symbol-processing" } spotless-gradlePlugin = { module = "com.diffplug.spotless:spotless-plugin-gradle", version.ref = "spotless" } detekt-gradlePlugin = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin", version.ref = "detekt" } test-logger-gradlePlugin = { module = "com.adarshr:gradle-test-logger-plugin", version.ref = "test-logger" } compose-gradlePlugin = { module = "org.jetbrains.kotlin:compose-compiler-gradle-plugin", version.ref = "kotlin" } junit5-gradlePlugin = { module = "de.mannodermaus.gradle.plugins:android-junit5", version.ref = "android-junit5" } easy-launcher-gradlePlugin = { module = "com.starter.easylauncher:com.starter.easylauncher.gradle.plugin", version.ref = "easylauncher" } aboutlibraries-gradlePlugin = { module = "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin", version.ref = "aboutlibraries" } # Dependencies aboutlibraries-compose = { module = "com.mikepenz:aboutlibraries-compose-m3", version.ref = "aboutlibraries" } kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" } retrofit-core = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } kotlinx-serialization-converter = { module = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter", version.ref = "kotlinx-serialization-converter" } serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization-json" } # Retrofit will use okhttp 4 (it has binary capability with okhttp 3) # See: https://square.github.io/okhttp/upgrading_to_okhttp_4/ okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } okhttp-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" } koin-bom = { module = "io.insert-koin:koin-bom", version.ref = "koin" } koin = { module = "io.insert-koin:koin-android" } koin-compose = { module = "io.insert-koin:koin-androidx-compose" } koin-navigation = { module = "io.insert-koin:koin-androidx-navigation" } timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" } compose-material = { module = "androidx.compose.material3:material3", version.ref = "material-compose" } material = { module = "com.google.android.material:material", version.ref = "material" } lottie = { module = "com.airbnb.android:lottie-compose", version.ref = "lottie" } coil = { module = "io.coil-kt:coil-compose", version.ref = "coil" } core-ktx = { module = "androidx.core:core-ktx", version.ref = "core-ktx" } core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "core-splashscreen" } viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" } livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycle" } compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" } tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "compose" } livedata-runtime = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "lifecycle" } room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" } room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" } room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } konsist = { module = "com.lemonappdev:konsist", version.ref = "konsist" } # Ktlint Rules ktlint-ruleset-standard = { module = "com.pinterest.ktlint:ktlint-ruleset-standard", version.ref = "ktlint-ruleset-standard" } nlopez-compose-rules = { module = "io.nlopez.compose.rules:ktlint", version.ref = "nlopez-compose-rules" } twitter-compose-rules = { module = "com.twitter.compose.rules:ktlint", version.ref = "twitter-compose-rules" } # Test dependencies test-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } kluent = { module = "org.amshove.kluent:kluent-android", version.ref = "kluent" } test-runner = { module = "androidx.test:runner", version.ref = "test-runner" } espresso = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso" } mockk = { module = "io.mockk:mockk", version.ref = "mockk" } core-testing = { module = "androidx.arch.core:core-testing", version.ref = "core-testing" } junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit-jupiter" } junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit-jupiter" } junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version = "1.13.4" } navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigation" } compose-bom = { module = "androidx.compose:compose-bom", version.ref = "compose-bom" } compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" } compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "compose" } [bundles] retrofit = [ "retrofit-core", "kotlinx-serialization-converter", "serialization-json", "okhttp", "okhttp-interceptor" ] koin = ["koin", "koin-compose", "koin-navigation"] compose = ["compose-ui", "tooling-preview", "lottie", "coil"] lifecycle = ["viewmodel-ktx", "livedata-ktx", "livedata-runtime"] navigation = ["navigation-compose"] room = ["room-ktx", "room-runtime"] test = [ "test-coroutines", "kluent", "test-runner", "espresso", "mockk", "core-testing", "junit-jupiter-api", "junit-jupiter-engine", "junit-platform-launcher", "konsist" ]