[versions]
splash-screen = "1.0.1"
koin = "4.0.0"
ktor = "3.0.2"
coroutinesVersion = "1.10.1"
koinComposeMultiplatform = "4.0.0"
coil3 = "3.0.4"
uiTooling = "1.8.1"
assertk = "0.28.1"
mockk = "1.13.5"
compose-navigation = "2.9.0-beta01"
[libraries]
core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "splash-screen" }
lifecycle-viewmodel-compose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutinesVersion" }
assertk = { module = "com.willowtreeapps.assertk:assertk", version.ref = "assertk" }
#ktor
ktor-client-android = { module = "io.ktor:ktor-client-android", version.ref = "ktor" }
ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" }
ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
ktor-client-mock = { module = "io.ktor:ktor-client-mock", version.ref = "ktor" }
#Mocking Library
io-mock = { module = "io.mockk:mockk", version.ref = "mockk" }
#Koin
koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
koin-compose = { module = "io.insert-koin:koin-compose", version.ref = "koinComposeMultiplatform" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koinComposeMultiplatform" }
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" }
#Coil-Image Loading
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil3" }
coil-compose-core = { module = "io.coil-kt.coil3:coil-compose-core", version.ref = "coil3" }
coil-network-ktor2 = { module = "io.coil-kt.coil3:coil-network-ktor2", version.ref = "coil3" }
coil-network-ktor3 = { module = "io.coil-kt.coil3:coil-network-ktor3", version.ref = "coil3" }
coil-mp = { module = "io.coil-kt.coil3:coil", version.ref = "coil3" }
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "uiTooling" }
#Navigation
compose-navigation = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "compose-navigation" }
[plugins]
jetbrains-kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
[bundles]
ktor = [
"ktor-client-core",
"ktor-client-content-negotiation",
"ktor-client-logging",
"ktor-serialization-kotlinx-json",
]
coil = [
"coil-compose",
"coil-compose-core",
"coil-network-ktor2",
"coil-network-ktor3",
"coil-mp"
]
In build.gradle.kts
androidMain.dependencies{
implementation(libs.core.splashscreen)
}
commonMain.dependencies {
implementation(libs.koin.compose.viewmodel)
implementation(libs.compose.navigation)
implementation(libs.bundles.ktor)
implementation(libs.bundles.coil)
}
nativeMain.dependencies {
implementation(libs.ktor.client.darwin)
}
commonTest.dependencies {
implementation(kotlin("test-annotations-common"))
implementation(libs.assertk)
implementation(libs.ktor.client.mock)
}