235 lines
11 KiB
TOML
235 lines
11 KiB
TOML
[versions]
|
|
# Core Android
|
|
agp = "9.1.1"
|
|
kotlin = "2.3.20"
|
|
ksp = "2.3.7"
|
|
compose-bom = "2026.04.01"
|
|
compose-multiplatform = "1.11.0-beta03"
|
|
material3 = "1.3.1"
|
|
activity-compose = "1.10.1"
|
|
lifecycle = "2.10.0"
|
|
lifecycle-kmp = "2.10.0"
|
|
navigation3-kmp = "1.1.0-rc01"
|
|
lifecycle-viewmodel-nav3-kmp = "2.10.0-alpha05"
|
|
|
|
# DI
|
|
koin = "4.2.1"
|
|
|
|
# Network
|
|
ktor = "3.4.3"
|
|
kotlinx-serialization = "1.10.0"
|
|
kotlinx-datetime = "0.7.1"
|
|
|
|
# Local Data
|
|
room = "2.8.4"
|
|
sqlite = "2.6.2"
|
|
datastore = "1.2.1"
|
|
security-crypto = "1.1.0"
|
|
|
|
# Async
|
|
coroutines = "1.10.2"
|
|
|
|
# Paging
|
|
paging = "3.4.2"
|
|
|
|
# Browser
|
|
browser = "1.10.0"
|
|
|
|
# Markdown
|
|
markdown-renderer = "0.40.2"
|
|
|
|
# Media
|
|
media3 = "1.10.0"
|
|
|
|
# Image Loading
|
|
coil3 = "3.4.0"
|
|
|
|
# Logging
|
|
kermit = "2.1.0"
|
|
|
|
# KMP / iOS
|
|
skie = "0.10.11"
|
|
|
|
# Testing
|
|
junit = "4.13.2"
|
|
turbine = "1.2.1"
|
|
mockk = "1.14.9"
|
|
truth = "1.4.4"
|
|
espresso = "3.6.1"
|
|
android-test-runner = "1.7.0"
|
|
android-test-ext = "1.3.0"
|
|
|
|
# Code Quality
|
|
detekt = "1.23.8"
|
|
ktlint = "12.1.2"
|
|
compose-lint-checks = "1.4.2"
|
|
kover = "0.9.8"
|
|
|
|
# Build
|
|
desugar = "2.1.5"
|
|
|
|
[libraries]
|
|
# Compose BOM
|
|
compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" }
|
|
compose-ui = { group = "androidx.compose.ui", name = "ui" }
|
|
compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
|
|
compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
|
|
compose-material3 = { group = "androidx.compose.material3", name = "material3" }
|
|
compose-material3-wsc = { group = "androidx.compose.material3", name = "material3-window-size-class" }
|
|
compose-material-icons = { group = "androidx.compose.material", name = "material-icons-extended" }
|
|
compose-animation = { group = "androidx.compose.animation", name = "animation" }
|
|
compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
|
|
|
|
# Activity / Navigation
|
|
activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activity-compose" }
|
|
# Lifecycle
|
|
lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "lifecycle" }
|
|
lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "lifecycle" }
|
|
lifecycle-runtime-compose-kmp = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "lifecycle-kmp" }
|
|
lifecycle-viewmodel-compose-kmp = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "lifecycle-kmp" }
|
|
navigation3-ui-kmp = { group = "org.jetbrains.androidx.navigation3", name = "navigation3-ui", version.ref = "navigation3-kmp" }
|
|
lifecycle-viewmodel-navigation3-kmp = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel-navigation3", version.ref = "lifecycle-viewmodel-nav3-kmp" }
|
|
|
|
# Koin
|
|
koin-bom = { group = "io.insert-koin", name = "koin-bom", version.ref = "koin" }
|
|
koin-core = { group = "io.insert-koin", name = "koin-core", version.ref = "koin" }
|
|
koin-android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" }
|
|
koin-compose = { group = "io.insert-koin", name = "koin-compose", version.ref = "koin" }
|
|
koin-compose-viewmodel = { group = "io.insert-koin", name = "koin-compose-viewmodel", version.ref = "koin" }
|
|
koin-compose-viewmodel-navigation = { group = "io.insert-koin", name = "koin-compose-viewmodel-navigation", version.ref = "koin" }
|
|
koin-test = { group = "io.insert-koin", name = "koin-test", version.ref = "koin" }
|
|
|
|
# Ktor
|
|
ktor-client-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktor" }
|
|
ktor-client-okhttp = { group = "io.ktor", name = "ktor-client-okhttp", version.ref = "ktor" }
|
|
ktor-client-darwin = { group = "io.ktor", name = "ktor-client-darwin", version.ref = "ktor" }
|
|
ktor-client-content-negotiation = { group = "io.ktor", name = "ktor-client-content-negotiation", version.ref = "ktor" }
|
|
ktor-serialization-kotlinx-json = { group = "io.ktor", name = "ktor-serialization-kotlinx-json", version.ref = "ktor" }
|
|
ktor-client-logging = { group = "io.ktor", name = "ktor-client-logging", version.ref = "ktor" }
|
|
ktor-client-auth = { group = "io.ktor", name = "ktor-client-auth", version.ref = "ktor" }
|
|
ktor-client-mock = { group = "io.ktor", name = "ktor-client-mock", version.ref = "ktor" }
|
|
|
|
# Kotlinx Serialization
|
|
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
|
|
|
|
# Kotlinx Datetime
|
|
kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinx-datetime" }
|
|
|
|
# Room
|
|
room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }
|
|
room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" }
|
|
room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }
|
|
room-testing = { group = "androidx.room", name = "room-testing", version.ref = "room" }
|
|
room-paging = { group = "androidx.room", name = "room-paging", version.ref = "room" }
|
|
sqlite-bundled = { group = "androidx.sqlite", name = "sqlite-bundled", version.ref = "sqlite" }
|
|
|
|
# DataStore
|
|
datastore-preferences = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "datastore" }
|
|
security-crypto = { group = "androidx.security", name = "security-crypto", version.ref = "security-crypto" }
|
|
|
|
# Coroutines
|
|
coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "coroutines" }
|
|
coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutines" }
|
|
coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "coroutines" }
|
|
|
|
# Paging
|
|
paging-runtime = { group = "androidx.paging", name = "paging-runtime", version.ref = "paging" }
|
|
paging-compose = { group = "androidx.paging", name = "paging-compose", version.ref = "paging" }
|
|
paging-common = { group = "androidx.paging", name = "paging-common", version.ref = "paging" }
|
|
|
|
# Browser
|
|
browser = { group = "androidx.browser", name = "browser", version.ref = "browser" }
|
|
|
|
# Markdown
|
|
markdown-renderer-m3 = { group = "com.mikepenz", name = "multiplatform-markdown-renderer-m3", version.ref = "markdown-renderer" }
|
|
markdown-renderer-coil3 = { group = "com.mikepenz", name = "multiplatform-markdown-renderer-coil3", version.ref = "markdown-renderer" }
|
|
|
|
# Media
|
|
media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "media3" }
|
|
media3-ui = { group = "androidx.media3", name = "media3-ui", version.ref = "media3" }
|
|
media3-datasource = { group = "androidx.media3", name = "media3-datasource", version.ref = "media3" }
|
|
|
|
# Image Loading
|
|
coil3-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil3" }
|
|
coil3-network-ktor = { group = "io.coil-kt.coil3", name = "coil-network-ktor3", version.ref = "coil3" }
|
|
|
|
# Logging
|
|
kermit = { group = "co.touchlab", name = "kermit", version.ref = "kermit" }
|
|
|
|
# Gradle Plugins (for build-logic)
|
|
android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "agp" }
|
|
kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
|
|
kotlin-multiplatform-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
|
|
compose-gradlePlugin = { group = "org.jetbrains.kotlin", name = "compose-compiler-gradle-plugin", version.ref = "kotlin" }
|
|
compose-multiplatform-gradlePlugin = { group = "org.jetbrains.compose", name = "compose-gradle-plugin", version.ref = "compose-multiplatform" }
|
|
ksp-gradlePlugin = { group = "com.google.devtools.ksp", name = "symbol-processing-gradle-plugin", version.ref = "ksp" }
|
|
room-gradlePlugin = { group = "androidx.room", name = "room-gradle-plugin", version.ref = "room" }
|
|
|
|
# Code Quality
|
|
detekt-formatting = { group = "io.gitlab.arturbosch.detekt", name = "detekt-formatting", version.ref = "detekt" }
|
|
detekt-koin = { group = "dev.androidbroadcast.rules.koin", name = "detekt-koin4-rules", version = "1.1.0" }
|
|
detekt-compose = { group = "io.nlopez.compose.rules", name = "detekt", version = "0.4.28" }
|
|
detekt-gradlePlugin = { group = "io.gitlab.arturbosch.detekt", name = "detekt-gradle-plugin", version.ref = "detekt" }
|
|
leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary-android", version = "2.14" }
|
|
compose-lint-checks = { group = "com.slack.lint.compose", name = "compose-lint-checks", version.ref = "compose-lint-checks" }
|
|
kover-gradlePlugin = { group = "org.jetbrains.kotlinx", name = "kover-gradle-plugin", version.ref = "kover" }
|
|
|
|
# Desugar
|
|
desugar-jdk = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "desugar" }
|
|
|
|
# Testing
|
|
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
|
turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine" }
|
|
mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" }
|
|
truth = { group = "com.google.truth", name = "truth", version.ref = "truth" }
|
|
android-test-runner = { group = "androidx.test", name = "runner", version.ref = "android-test-runner" }
|
|
android-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "android-test-ext" }
|
|
compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4" }
|
|
compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
|
|
|
|
[bundles]
|
|
compose = [
|
|
"compose-ui",
|
|
"compose-ui-tooling-preview",
|
|
"compose-material3",
|
|
"compose-material-icons",
|
|
"compose-animation",
|
|
"compose-foundation",
|
|
]
|
|
ktor = [
|
|
"ktor-client-core",
|
|
"ktor-client-okhttp",
|
|
"ktor-client-content-negotiation",
|
|
"ktor-serialization-kotlinx-json",
|
|
"ktor-client-logging",
|
|
]
|
|
lifecycle = [
|
|
"lifecycle-runtime-compose",
|
|
"lifecycle-viewmodel-compose",
|
|
]
|
|
room = [
|
|
"room-runtime",
|
|
"room-ktx",
|
|
]
|
|
testing = [
|
|
"junit",
|
|
"coroutines-test",
|
|
"turbine",
|
|
"mockk",
|
|
"truth",
|
|
]
|
|
|
|
[plugins]
|
|
android-application = { id = "com.android.application", version.ref = "agp" }
|
|
android-library = { id = "com.android.library", version.ref = "agp" }
|
|
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
|
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
|
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
|
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
|
compose-multiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
|
|
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
|
room = { id = "androidx.room", version.ref = "room" }
|
|
skie = { id = "co.touchlab.skie", version.ref = "skie" }
|
|
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
|
|
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" }
|
|
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" }
|