Skip to content

Commit

Permalink
added all the missing KMP dependencies in the version catalog
Browse files Browse the repository at this point in the history
  • Loading branch information
itsPronay committed Jan 10, 2025
1 parent f541427 commit 2342c66
Show file tree
Hide file tree
Showing 2 changed files with 154 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ internal fun Project.configureKotlinAndroid(
commonExtension: CommonExtension<*, *, *, *, *, *>,
) {
commonExtension.apply {
compileSdk = 34
compileSdk = 35

defaultConfig {
minSdk = 26
Expand Down
187 changes: 153 additions & 34 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ androidIconifyMaterial = "2.2.2"
androidJob = "1.2.6"
androidMapsUtils = "0.4.2"
androidGradlePlugin = "8.5.2"
androidTools = "31.6.0"
androidTools = "31.7.3"
androidxActivity = "1.8.2"
androidxAppCompat = "1.6.1"
androidxArchCore = '2.2.0'
Expand Down Expand Up @@ -66,14 +66,8 @@ jacoco = "0.8.7"
junit4 = "4.13.2"
junitJupiter = "5.8.2"
junitVersion = "1.1.5"
kotlin = "2.0.21"
kotlinxCoroutines = "1.7.3"
kotlinxCoroutinesCoreVersion = "1.5.1"
kotlinxCoroutinesRx2 = "1.5.1"
kotlinxDatetime = "0.5.0"
kotlinxSerializationJson = "1.6.0"
kotlinxImmutable = "0.3.6"
ksp = "1.9.22-1.0.17" # "1.9.10-1.0.13"
legacySupportV4 = "1.0.0"
lifecycleCommonJava8 = "2.7.0"
lifecycleExtensions = "2.2.0"
Expand Down Expand Up @@ -108,7 +102,7 @@ playScanner = "16.1.0"
playService = "18.3.0"
realmVersion = "1.13.0"
recyclerview = "1.3.2"
room = "2.6.1"
room = "2.7.0-alpha12"
retrofit = "2.9.0"
rxandroidVersion = "1.1.0"
rxjava = "1.3.8"
Expand All @@ -119,6 +113,7 @@ spotlessVersion = "6.23.3"
ktlint = "12.1.1"
detekt = "1.23.5"
twitter-detekt-compose = "0.0.26"
moduleGraph = "2.7.1"

secrets = "2.0.1"
stetho = "1.3.1"
Expand All @@ -131,15 +126,146 @@ truthVersion = '1.1.5'
runtimeLivedata = "1.6.8"
appcompat = "1.7.0"


# Kotlin KMP Dependencies
kotlin = "2.0.21"
kotlinInject = "0.7.2"
kotlinxCoroutines = "1.9.0"
kotlinxDatetime = "0.6.1"
kotlinxImmutable = "0.3.8"
kotlinxSerializationJson = "1.7.3"
ksp = "2.0.21-1.0.27"

# Ktor & Ktorfit
ktorVersion = "3.0.3"
ktorfit = "2.2.0"
ktorfitKsp = "2.2.0-1.0.29"

# Koin CMP Dependencies
koin = "4.0.1-RC1"
koinAnnotationsVersion = "1.4.0-RC4"

# CMP Libraries
compose-plugin = "1.7.0-rc01"
coil = "3.0.4"
backHandlerVersion = "2.1.0"
constraintLayout = "0.4.0"
multiplatformSettings = "1.2.0"
mokoPermission = "0.18.0"
qroseVersion = "1.0.1"
okioVersion = "3.9.1"
kermit = "2.0.4"
fileKit = "0.8.7"
wire = "5.0.0"
coil-cmp = "3.0.4"

# Jetbrains CMP
windowsSizeClass = "0.5.0"
uiDesktopVersion = "1.7.0"
composeJB = "1.7.3"
composeLifecycle = "2.8.3"
composeNavigation = "2.8.0-alpha10"
jbCoreBundle = "1.0.1"
jbSavedState = "1.2.2"

# Desktop Version
packageName = "MifosWallet"
packageNamespace = "org.mifos.desktop"
packageVersion = "1.0.0"

[libraries]
# [New KMP Dependencies]

# jb Compose
jb-kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
jb-kotlin-stdlib-js = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-js", version.ref = "kotlin" }
jb-kotlin-dom = { group = "org.jetbrains.kotlin", name = "kotlin-dom-api-compat", version.ref = "kotlin" }
jb-composeRuntime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "composeJB" }
jb-composeViewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "composeLifecycle" }
jb-lifecycleViewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel", version.ref = "composeLifecycle" }
jb-lifecycleViewmodelSavedState = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate", version.ref = "composeLifecycle" }
jb-bundle = { module = "org.jetbrains.androidx.core:core-bundle", version.ref = "jbCoreBundle" }
jb-savedstate = { module = "org.jetbrains.androidx.savedstate:savedstate", version.ref = "jbSavedState" }
jb-composeNavigation = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "composeNavigation" }
jb-navigation = { module = "org.jetbrains.androidx.navigation:navigation-common", version.ref = "composeNavigation" }

koin-android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" }
koin-androidx-compose = { group = "io.insert-koin", name = "koin-androidx-compose", version.ref = "koin" }
koin-androidx-navigation = { group = "io.insert-koin", name = "koin-androidx-navigation", version.ref = "koin" }
koin-annotations = { group = "io.insert-koin", name = "koin-annotations", version.ref = "koinAnnotationsVersion" }
koin-bom = { group = "io.insert-koin", name = "koin-bom", 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-navigation = { group = "io.insert-koin", name = "koin-compose-viewmodel-navigation", version.ref = "koin" }
koin-core = { group = "io.insert-koin", name = "koin-core", version.ref = "koin" }
koin-core-viewmodel = { group = "io.insert-koin", name = "koin-core-viewmodel", version.ref = "koin" }
koin-ksp-compiler = { group = "io.insert-koin", name = "koin-ksp-compiler", version.ref = "koinAnnotationsVersion" }
koin-test = { group = "io.insert-koin", name = "koin-test", version.ref = "koin" }
koin-test-junit4 = { group = "io.insert-koin", name = "koin-test-junit4", version.ref = "koin" }
koin-test-junit5 = { group = "io.insert-koin", name = "koin-test-junit5", version.ref = "koin" }

kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
kotlin-inject-compiler-ksp = { group = "me.tatarka.inject", name = "kotlin-inject-compiler-ksp", version.ref = "kotlinInject" }
kotlin-inject-runtime = { group = "me.tatarka.inject", name = "kotlin-inject-runtime", version.ref = "kotlinInject" }
kotlin-inject-runtime-kmp = { group = "me.tatarka.inject", name = "kotlin-inject-runtime-kmp", version.ref = "kotlinInject" }
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" }
kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlin" }

kotlinx-collections-immutable = { group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinxImmutable" }
kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" }
kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
kotlinx-coroutines-swing = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-swing", version.ref = "kotlinxCoroutines" }
kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" }
kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDatetime" }
kotlinx-serialization-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-core", version.ref = "kotlinxSerializationJson" }
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" }

ksp-gradlePlugin = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" }

ktor-client-android = { group = "io.ktor", name = "ktor-client-android", version.ref = "ktorVersion" }
ktor-client-auth = { group = "io.ktor", name = "ktor-client-auth", version.ref = "ktorVersion" }
ktor-client-cio = { group = "io.ktor", name = "ktor-client-cio", version.ref = "ktorVersion" }
ktor-client-content-negotiation = { group = "io.ktor", name = "ktor-client-content-negotiation", version.ref = "ktorVersion" }
ktor-client-core = { group = "io.ktor", name = "ktor-client-core", version.ref = "ktorVersion" }
ktor-client-darwin = { group = "io.ktor", name = "ktor-client-darwin", version.ref = "ktorVersion" }
ktor-client-okhttp = { group = "io.ktor", name = "ktor-client-okhttp", version.ref = "ktorVersion" }
ktor-client-java = { group = "io.ktor", name = "ktor-client-java", version.ref = "ktorVersion" }
ktor-client-js = { group = "io.ktor", name = "ktor-client-js", version.ref = "ktorVersion" }
ktor-client-json = { group = "io.ktor", name = "ktor-client-json", version.ref = "ktorVersion" }
ktor-client-logging = { group = "io.ktor", name = "ktor-client-logging", version.ref = "ktorVersion" }
ktor-client-serialization = { group = "io.ktor", name = "ktor-client-serialization", version.ref = "ktorVersion" }
ktor-client-websockets = { group = "io.ktor", name = "ktor-client-websockets", version.ref = "ktorVersion" }
ktor-client-winhttp = { group = "io.ktor", name = "ktor-client-winhttp", version.ref = "ktorVersion" }
ktor-serialization-kotlinx-json = { group = "io.ktor", name = "ktor-serialization-kotlinx-json", version.ref = "ktorVersion" }
ktor-server-auth = { group = "io.ktor", name = "ktor-server-auth", version.ref = "ktorVersion" }

ktorfit-ksp = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-ksp", version.ref = "ktorfitKsp" }
ktorfit-converters-flow = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-converters-flow", version.ref = "ktorfit" }
ktorfit-lib = { group = "de.jensklingenberg.ktorfit", name = "ktorfit-lib", version.ref = "ktorfit" }

coil-kt-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil-compose" }

compose-gradlePlugin = { group = "org.jetbrains.kotlin", name = "compose-compiler-gradle-plugin", version.ref = "kotlin" }
squareup-okio = { group = "com.squareup.okio", name = "okio", version.ref = "okioVersion" }
back-handler = { group = "com.arkivanov.essenty", name = "back-handler", version.ref = "backHandlerVersion" }
constraint-layout = { group = "tech.annexflow.compose", name="constraintlayout-compose-multiplatform", version.ref = "constraintLayout" }
filekit-core = { group = "io.github.vinceglb", name = "filekit-core", version.ref = "fileKit" }
filekit-compose = { group = "io.github.vinceglb", name = "filekit-compose", version.ref = "fileKit" }
qrose = { group = "io.github.alexzhirkevich", name="qrose", version.ref = "qroseVersion" }

kermit-logging = { group = "co.touchlab", name = "kermit", version.ref = "kermit" }
kermit-simple = { group = "co.touchlab", name = "kermit-simple", version.ref = "kermit" }

multiplatform-settings = { group = "com.russhwolf", name = "multiplatform-settings-no-arg", version.ref = "multiplatformSettings" }
multiplatform-settings-coroutines = { group = "com.russhwolf", name = "multiplatform-settings-coroutines", version.ref = "multiplatformSettings" }
multiplatform-settings-serialization = { group = "com.russhwolf", name = "multiplatform-settings-serialization", version.ref = "multiplatformSettings" }
multiplatform-settings-test = { group = "com.russhwolf", name = "multiplatform-settings-test", version.ref = "multiplatformSettings" }

moko-permission = { group = "dev.icerock.moko", name = "permissions", version.ref = "mokoPermission" }
moko-permission-compose = { group = "dev.icerock.moko", name = "permissions-compose", version.ref = "mokoPermission" }

window-size = { group = "dev.chrisbanes.material3", name = "material3-window-size-class-multiplatform", version.ref = "windowsSizeClass" }

# AndroidX Libraries
accompanist-drawablepainter = { module = "com.google.accompanist:accompanist-drawablepainter", version.ref = "accompanistDrawablepainter" }
accompanist-swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanistSwiperefresh" }
Expand Down Expand Up @@ -264,9 +390,6 @@ adapter-rxjava = { module = "com.squareup.retrofit2:adapter-rxjava", version.ref
converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "converterGson" }
converter-scalars = { module = "com.squareup.retrofit2:converter-scalars", version.ref = "converterScalars" }

# Coil Compose
coil-kt-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil-compose" }

# DBFlow
dbflow = { module = "com.github.raizlabs.dbflow.dbflow:dbflow", version.ref = "dbflow" }
dbflow-processor = { module = "com.github.raizlabs.dbflow.dbflow:dbflow-processor", version.ref = "dbflow" }
Expand Down Expand Up @@ -306,18 +429,6 @@ junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "jun

javax-inject = { module = "javax.inject:javax.inject", version = "1" }


# Coroutines
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" }
kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" }
kotlinx-coroutines-guava = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-guava", version.ref = "kotlinxCoroutines" }
# For testing
kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" }
kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDatetime" }
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" }
kotlinx-collections-immutable = {group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinxImmutable"}

libphonenumber-android = { group = "io.michaelrocks", name = "libphonenumber-android", version.ref = "libphonenumberAndroidVersion" }

#Android Lint
Expand Down Expand Up @@ -400,14 +511,17 @@ android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", ver
android-tools-common = { group = "com.android.tools", name = "common", version.ref = "androidTools" }
firebase-crashlytics-gradlePlugin = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlyticsPlugin" }
firebase-performance-gradlePlugin = { group = "com.google.firebase", name = "perf-plugin", version.ref = "firebasePerfPlugin" }
kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
ksp-gradlePlugin = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" }
room-gradlePlugin = { group = "androidx.room", name = "room-gradle-plugin", version.ref = "room" }
androidx-runtime-livedata = { group = "androidx.compose.runtime", name = "runtime-livedata", version.ref = "runtimeLivedata" }
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
compose-gradlePlugin = { group = "org.jetbrains.kotlin", name = "compose-compiler-gradle-plugin", version.ref = "kotlin" }

[plugins]

# Android & Kotlin Plugins
mifos-android-application = { id = "mifos.android.application", version = "unspecified" }
mifos-android-application-compose = { id = "mifos.android.application.compose", version = "unspecified" }
mifos-android-application-flavors = { id = "mifos.android.application.flavors", version = "unspecified" }

android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }
android-test = { id = "com.android.test", version.ref = "androidGradlePlugin" }
Expand All @@ -419,30 +533,35 @@ firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "fireb
gms = { id = "com.google.gms.google-services", version.ref = "gmsPlugin" }
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-kapt = { id = "kotlin-kapt", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
kotlin-parcelize = { id = "kotlin-parcelize", version.ref = "kotlin" }
protobuf = { id = "com.google.protobuf", version.ref = "protobufPlugin" }
realm = { id = "io.realm.kotlin", version.ref = "realmVersion" }
secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "secrets" }
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" }
spotless = { id = "com.diffplug.spotless", version.ref = "spotlessVersion" }
dependencyGuard = { id = "com.dropbox.dependency-guard", version.ref = "dependencyGuard" }
room-compiler = { id = "androidx.room", version.ref = "room" }
module-graph = { id = "com.jraska.module.graph.assertion", version.ref = "moduleGraph" }

# KMP & CMP
# KMP & CMP Plugins
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
ktorfit = { id = "de.jensklingenberg.ktorfit", version.ref = "ktorfit" }
wire = { id = "com.squareup.wire", version.ref = "wire" }
mifos-kmp-library = { id = "mifos.kmp.library", version = "unspecified" }
mifos-cmp-feature = { id = "mifos.cmp.feature", version = "unspecified" }
mifos-kmp-koin = { id = "mifos.kmp.koin", version = "unspecified" }

#koin-bom = { id = "org.koin:koin-bom", version.ref = "koin" }
#koin-android = { id = "io.insert-koin", name = "koin-android", version.ref = "koin" }

# Plugins defined by this project
mifos-android-application = { id = "mifos.android.application", version = "unspecified" }
mifos-android-application-flavors = { id = "mifos.android.application.flavors", version = "unspecified" }
mifos-android-application-compose = { id = "mifos.android.application.compose", version = "unspecified" }
mifos-android-application-firebase = { id = "mifos.android.application.firebase", version = "unspecified" }
mifos-android-application-jacoco = { id = "mifos.android.application.jacoco", version = "unspecified" }
mifos-android-feature = { id = "mifos.android.feature", version = "unspecified" }
Expand Down

0 comments on commit 2342c66

Please sign in to comment.