[versions] kotlin = "1.9.22" # 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/ kotlinSymbolProcessing = "1.9.20-RC2-1.0.13" # Compose compiler depends on specific Kotlin version, so it must be upgraded together with Kotlin (disabled in Renovate) # https://developer.android.com/jetpack/androidx/releases/compose-kotlin kotlinCompilerExtensionVersion = "1.5.4" compileSdk = "34" minSdk = "26" navigation = "2.7.6" testLogger = "3.2.0" coroutines = "1.7.3" retrofit = "2.9.0" okhttp = "4.12.0" koin = "3.5.3" coil = "2.5.0" lifecycle = "2.6.2" room = "2.6.1" serializationJson = "1.6.2" kotlinxSerializationConverter = "1.0.0" viewBindingPropertyDelegate = "1.5.9" timber = "5.0.1" constraintLayout = "2.1.4" appCompat = "1.6.1" recyclerView = "1.3.2" compose = "1.5.4" materialCompose = "1.1.2" material = "1.11.0" lottie = "6.3.0" playCore = "1.10.3" coreKtx = "1.12.0" fragmentKtx = "1.6.2" # Info https://google.github.io/accompanist/flowlayout/ # Repo https://oss.sonatype.org/content/repositories/snapshots/com/google/accompanist/accompanist-flowlayout/ accompanistFlowLayout = "0.32.0" spotless = "6.23.3" detekt = "1.23.4" androidGradlePlugin = "8.2.1" # Test versionsandroid-junit5-plugin-dsl junit = "5.10.1" androidJUnit5 = "1.10.0.0" kluent = "1.73" testRunner = "1.5.2" mockk = "1.13.8" espresso = "3.5.1" coreTesting = "2.2.0" [libraries] kotlin = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" } retrofitCore = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } kotlinxSerializationConverter = { module = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter", version.ref = "kotlinxSerializationConverter" } serializationJson = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serializationJson" } # 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" } okhttpInterceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" } koin = { module = "io.insert-koin:koin-android", version.ref = "koin" } koinNavigation = { module = "io.insert-koin:koin-androidx-navigation", version.ref = "koin" } viewBindingPropertyDelegate = { module = "com.github.kirich1409:viewbindingpropertydelegate", version.ref = "viewBindingPropertyDelegate" } timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" } constraintLayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintLayout" } appCompat = { module = "androidx.appcompat:appcompat", version.ref = "appCompat" } recyclerView = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerView" } composeMaterial = { module = "androidx.compose.material3:material3", version.ref = "materialCompose" } 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" } playCore = { module = "com.google.android.play:core", version.ref = "playCore" } coreKtx = { module = "androidx.core:core-ktx", version.ref = "coreKtx" } fragmentKtx = { module = "androidx.fragment:fragment-ktx", version.ref = "fragmentKtx" } viewmodelKtx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycle" } livedataKtx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycle" } composeUI = { module = "androidx.compose.ui:ui", version.ref = "compose" } toolingPreview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "compose" } livedataRuntime = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "lifecycle" } navigationFragment = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "navigation" } navigationUiKtx = { module = "androidx.navigation:navigation-ui-ktx", version.ref = "navigation" } roomKtx = { module = "androidx.room:room-ktx", version.ref = "room" } roomRuntime = { module = "androidx.room:room-runtime", version.ref = "room" } roomCompiler = { module = "androidx.room:room-compiler", version.ref = "room" } accompanistFlowLayout = { module = "com.google.accompanist:accompanist-flowlayout", version.ref = "accompanistFlowLayout" } detektFormatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" } konsist = "com.lemonappdev:konsist:0.11.0" # Test dependencies junit = { module = "junit:junit", version.ref = "junit" } testCoroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } kluent = { module = "org.amshove.kluent:kluent-android", version.ref = "kluent" } testRunner = { module = "androidx.test:runner", version.ref = "testRunner" } espresso = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso" } mockk = { module = "io.mockk:mockk", version.ref = "mockk" } coreTesting = { module = "androidx.arch.core:core-testing", version.ref = "coreTesting" } junitJupiterApi = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" } junitJupiterEngine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" } [bundles] retrofit = ["retrofitCore", "kotlinxSerializationConverter", "serializationJson", "okhttp", "okhttpInterceptor"] koin = ["koin", "koinNavigation"] compose = ["composeUI", "toolingPreview", "lottie", "coil"] lifecycle = ["viewmodelKtx", "livedataKtx", "livedataRuntime"] navigation = ["navigationFragment", "navigationUiKtx"] room = ["roomKtx", "roomRuntime"] test = ["testCoroutines", "kluent", "testRunner", "espresso", "mockk", "coreTesting", "junitJupiterApi", "junitJupiterEngine", "konsist"] [plugins] # Search Gradle Plugins https://plugins.gradle.org/ android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } kotlin-symbolProcessing = { id = "com.google.devtools.ksp", version.ref = "kotlinSymbolProcessing" } detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } safeArgs = { id = "androidx.navigation.safeargs.kotlin", version.ref = "navigation" } junit5Android = { id = "de.mannodermaus.android-junit5", version.ref = "androidJUnit5" } testLogger = { id = "com.adarshr.test-logger", version.ref = "testLogger" }