Files
coco 723ce1af5c a
2026-07-03 15:12:48 +08:00

128 lines
6.9 KiB
TOML

[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" }