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

227 lines
9.7 KiB
TOML

[versions]
kotlin = "1.9.22"
kotlin-coroutines = "1.8.0"
ktor = "2.3.9"
arrow = "1.2.3"
kotest = "5.8.1"
# https://developer.android.com/jetpack/androidx/releases/compose
compose = "1.6.4"
# https://developer.android.com/jetpack/androidx/releases/compose-kotlin
compose-compiler = "1.5.10" # It's used! Use compatible with Kotlin one
compose-material3 = "1.2.1"
glance = "1.0.0"
hilt = "2.51"
room = "2.6.1"
androidx-work = "2.9.0"
kotlinx-collections = "0.3.7"
androidx-test = "1.5.0"
# Android
min-sdk = "28"
compile-sdk = "34"
version-name = "4.5.0"
version-code = "150"
# Linters
detekt = "1.23.6" # https://detekt.dev/docs/gettingstarted/gradle/
[libraries]
android-gradle-plugin = { module = "com.android.tools.build:gradle", version = "8.3.1" }
# Kotlin
kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
kotlin-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlin-coroutines" }
kotlin-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlin-coroutines" }
kotlin-coroutines-googleplay-temp = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-play-services", version.ref = "kotlin-coroutines" }
kotlinx-collections-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinx-collections" }
# KotlinX Serialization
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version = "1.6.3" }
kotlinx-serialization-plugin = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlin" }
# Ktor
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
ktor-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
ktor-serialization = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
ktor-client-serialization = { module = "io.ktor:ktor-client-serialization", version.ref = "ktor" }
ktor-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
# Arrow
arrowkt-core = { module = "io.arrow-kt:arrow-core", version.ref = "arrow" }
# Testing
mockk = { module = "io.mockk:mockk", version = "1.13.10" }
kotest-junit5 = { module = "io.kotest:kotest-runner-junit5", version.ref = "kotest" }
kotest-assertions = { module = "io.kotest:kotest-assertions-core", version.ref = "kotest" }
kotest-property = { module = "io.kotest:kotest-property", version.ref = "kotest" }
kotest-property-arrow = { module = "io.kotest.extensions:kotest-property-arrow", version.ref = "arrow" }
kotest-assertions-arrow = { module = "io.kotest.extensions:kotest-assertions-arrow", version.ref = "arrow" }
kotest-datatest = { module = "io.kotest:kotest-framework-datatest", version.ref = "kotest" }
kotlin-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlin-coroutines" }
cashapp-molecule-plugin = { module = "app.cash.molecule:molecule-gradle-plugin", version = "1.4.1" }
cashapp-turbine = { module = "app.cash.turbine:turbine", version = "1.1.0" }
# Integartion (Android) testing
androidx-test-runner = { module = "androidx.test:runner", version.ref = "androidx-test" }
androidx-test-core = { module = "androidx.test:core-ktx", version.ref = "androidx-test" }
androidx-test-ext = { module = "androidx.test.ext:junit-ktx", version = "1.1.5" }
mockk-android = { module = "io.mockk:mockk-android", version = "1.13.10"}
# Compose
compose-animation = { module = "androidx.compose.animation:animation", version.ref = "compose" }
compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose" }
compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "compose-material3" }
compose-material3-windowsize = { module = "androidx.compose.material3:material3-window-size-class", version.ref = "compose-material3" }
compose-runtime = { module = "androidx.compose.runtime:runtime", version.ref = "compose" }
compose-runtime-livedate-temp = { module = "androidx.compose.runtime:runtime-livedata", version.ref = "compose" }
compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" }
compose-activity = { module = "androidx.activity:activity-compose", version = "1.8.2" }
compose-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version = "2.7.0" }
compose-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" }
compose-coil = { module = "io.coil-kt:coil-compose", version = "2.6.0" }
glance = { module = "androidx.glance:glance", version.ref = "glance" }
glance-appwidget = { module = "androidx.glance:glance-appwidget", version.ref = "glance" }
glance-material3 = { module = "androidx.glance:glance-material3", version.ref = "glance" }
# Room
room-plugin = { module = "androidx.room:androidx.room.gradle.plugin", version.ref = "room" }
room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" }
room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" }
room-testing = { module = "androidx.room:room-testing", version.ref = "room" }
datastore = { module = "androidx.datastore:datastore-preferences", version = "1.0.0" }
# Hilt
hilt = { module = "com.google.dagger:hilt-android", version.ref = "hilt" }
hilt-work = { module = "androidx.hilt:hilt-work", version = "1.2.0" }
hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" }
hilt-gradle-plugin = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "hilt" }
# Google
google-services-plugin = { module = "com.google.gms:google-services", version = "4.4.1" }
google-playservices-auth = { module = "com.google.android.gms:play-services-auth", version = "21.0.0" }
google-play-core = { module = "com.google.android.play:core", version = "1.10.3" }
google-play-core-ktx = { module = "com.google.android.play:core-ktx", version = "1.8.1" }
firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics", version = "18.6.3" }
firebase-crashlytics-gradle-plugin = { module = "com.google.firebase:firebase-crashlytics-gradle", version = "2.9.9" }
# AndroidX
androidx-security = { module = "androidx.security:security-crypto", version = "1.0.0" }
androidx-biometrics = { module = "androidx.biometric:biometric", version = "1.2.0-alpha05" }
androidx-activity = { module = "androidx.activity:activity-ktx", version = "1.8.2" }
appcompat-activity = { module = "androidx.appcompat:appcompat", version = "1.7.0-alpha03" }
androidx-work = { module = "androidx.work:work-runtime-ktx", version.ref = "androidx-work" }
androidx-work-testing = { module = "androidx.work:work-testing", version.ref = "androidx-work" }
androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version = "1.3.2" }
# Material
material = { module = "com.google.android.material:material", version = "1.11.0" }
# Logging
timber = { module = "com.jakewharton.timber:timber", version = "5.0.1" }
# Legacy
keval = { module = "com.notkamui.libs:keval", version = "1.0.0" }
opencsv-csv = { module = "com.opencsv:opencsv", version = "5.9" }
opencsv-apache-commons = { module = "org.apache.commons:commons-lang3", version = "3.14.0" }
# Linters
detekt-gradle-plugin = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin", version.ref = "detekt" }
detekt-ruleset-compiler = { module = "com.braisgabin.detekt:kotlin-compiler-wrapper", version = "0.0.4" }
detekt-ruleset-ktlint = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" }
detekt-ruleset-compose = { module = "io.nlopez.compose.rules:detekt", version = "0.3.12" }
detekt-ruleset-ivy-explicit = { module = "com.github.Ivy-Apps:detekt-explicit", version = "v0.0.7" }
slack-lint-compose = { module = "com.slack.lint.compose:compose-lint-checks", version = "1.3.1" }
# KSP
ksp-plugin = { module = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin", version = "1.9.22-1.0.18" }
[bundles]
kotlin = [
"kotlin-stdlib",
"kotlin-coroutines-core",
"kotlinx-collections-immutable"
]
kotlin-android = [
"kotlin-coroutines-android",
"kotlin-coroutines-googleplay-temp",
]
arrow = [
"arrowkt-core",
]
ktor = [
"kotlinx-serialization-json",
"ktor-client-okhttp",
"ktor-content-negotiation",
"ktor-serialization",
"ktor-client-core",
"ktor-client-serialization",
"ktor-logging"
]
testing = [
"kotest-junit5",
"kotest-assertions",
"kotest-property",
"kotest-property-arrow",
"kotest-assertions-arrow",
"kotest-datatest",
"kotlin-coroutines-test",
"mockk",
"cashapp-turbine"
]
integration-testing = [
"kotest-assertions",
"androidx-test-core",
"androidx-test-runner",
"androidx-test-ext"
]
compose = [
"compose-animation",
"compose-foundation",
"compose-material3",
"compose-material3-windowsize",
"compose-runtime",
"compose-ui",
"compose-activity",
"compose-viewmodel",
"compose-tooling",
"compose-runtime-livedate-temp",
"compose-coil",
]
activity = [
"androidx-activity",
"appcompat-activity"
]
glance = [
"glance",
"glance-appwidget",
"glance-material3"
]
google = [
"google-playservices-auth",
"google-play-core",
"google-play-core-ktx"
]
firebase = [
"firebase-crashlytics"
]
hilt = [
"hilt",
"hilt-work"
]
room = [
"room-runtime",
"room-ktx"
]
opencsv = [
"opencsv-csv",
"opencsv-apache-commons"
]
[plugins]
gradleWrapperUpgrade = { id = "org.gradle.wrapper-upgrade", version = "0.11.4" }
koverPlugin = { id = "org.jetbrains.kotlinx.kover", version = "0.7.6" }