First version with MVVM

This commit is contained in:
2025-01-31 21:32:28 +01:00
parent 8902b17d66
commit 450713ae38
10 changed files with 278 additions and 68 deletions

View File

@@ -11,16 +11,27 @@ androidx-espresso-core = "3.6.1"
androidx-lifecycle = "2.8.4"
androidx-material = "1.12.0"
androidx-test-junit = "1.2.1"
androidxLifecycleLivedataKtx = "2.6.1"
androidxRuntimeLivedata = "x.x.x"
assertjVersion = "3.26.3"
compose-multiplatform = "1.7.0"
coreKtx = "1.9.0"
exposedVersion = "0.55.0"
flywayVersion = "10.20.1"
h2 = "2.3.232"
hikariCpVersion = "5.1.0"
koin = "4.0.2"
koin-bom = "4.0.2"
koinComposeMultiplatform = "4.0.2"
koin-compose = "1.0.4"
hiltNavigationCompose = "1.2.0"
junit = "4.13.2"
junitVersion = "5.11.3"
kformat = "0.11"
koinAndroidxCompose = "4.0.2)"
koinCore = "3.1.2"
kotlin = "2.1.0"
ksp = "2.1.0-1.0.29"
kotlinSerializationCompilerPluginEmbeddable = "1.9.22"
kotlinx-coroutines = "1.9.0"
kotlinxSerializationCore = "1.8.0"
@@ -45,12 +56,38 @@ ktorServerCore = "3.0.2"
ktorServerCors = "3.0.2"
ktorServerNetty = "3.0.2"
ktorServerRequestValidation = "3.0.2"
lifecycleLivedataCore = "2.8.7"
lifecycleLivedataKtx = "2.8.7"
lifecycleLivedataKtxVersion = "x.x.x"
lifecycleRuntimeCompose = "2.8.7"
lifecycle = "2.3.1"
lifecycleRuntimeComposeVersion = "2.6.1"
lifecycleViewmodelKtx = "2.6.1"
lifecycleViewmodelCompose = "2.8.4"
logback = "1.5.12"
material = "1.7.6"
psqlVersion = "42.7.4"
restAssuredVersion = "5.5.0"
runtimeLivedata = "1.7.6"
runtimeLivedataVersion = "1.0.0-beta01"
symbolProcessingApi = "2.1.0-1.0.29"
lifecycleLivedataCoreKtx = "2.8.7"
[libraries]
androidx-core-ktx-v190 = { module = "androidx.core:core-ktx", version.ref = "coreKtx" }
androidx-lifecycle-livedata-core = { module = "androidx.lifecycle:lifecycle-livedata-core", version.ref = "lifecycleLivedataCore" }
androidx-lifecycle-livedata-ktx-v261 = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "androidxLifecycleLivedataKtx" }
androidx-lifecycle-livedata-ktx-v287 = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycleLivedataKtx" }
androidx-lifecycle-livedata-ktx-vxxx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycleLivedataKtxVersion" }
androidx-lifecycle-runtime-compose-v261 = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "lifecycleRuntimeComposeVersion" }
androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycleLivedataKtx" }
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycleViewmodelCompose" }
androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycleLivedataCore" }
androidx-lifecycle-viewmodel-ktx-v261 = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycleViewmodelKtx" }
androidx-lifecycle-viewmodel-savedstate = { module = "androidx.lifecycle:lifecycle-viewmodel-savedstate", version.ref = "androidxLifecycleLivedataKtx" }
androidx-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata", version.ref = "runtimeLivedata" }
androidx-runtime-livedata-v100beta01 = { module = "androidx.compose.runtime:runtime-livedata", version.ref = "runtimeLivedataVersion" }
androidx-runtime-livedata-vxxx = { module = "androidx.compose.runtime:runtime-livedata", version.ref = "androidxRuntimeLivedata" }
assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertjVersion" }
exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposedVersion" }
exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposedVersion" }
@@ -59,17 +96,23 @@ exposed-json = { module = "org.jetbrains.exposed:exposed-json", version.ref = "e
flyway-core = { module = "org.flywaydb:flyway-core", version.ref = "flywayVersion" }
h2 = { module = "com.h2database:h2", version.ref = "h2" }
hikaricp = { module = "com.zaxxer:HikariCP", version.ref = "hikariCpVersion" }
insert-koin-koin-compose = { module = "io.insert-koin:koin-compose" }
io-ktor-ktor-server-core = { module = "io.ktor:ktor-server-core", version.ref = "ktor" }
io-ktor-ktor-server-netty = { module = "io.ktor:ktor-server-netty" }
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junitVersion" }
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junitVersion" }
kformat = { module = "de.m3y.kformat:kformat", version.ref = "kformat" }
koin-compose = { module = "io.insert-koin:koin-compose" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koinComposeMultiplatform" }
kotlin-serialization-compiler-plugin-embeddable = { module = "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin-embeddable", version.ref = "kotlinSerializationCompilerPluginEmbeddable" }
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidx-core-ktx" }
androidx-lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycle" }
androidx-test-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-junit" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidx-espresso-core" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" }
@@ -113,6 +156,8 @@ ktor-server-netty-v302 = { module = "io.ktor:ktor-server-netty", version.ref = "
ktor-server-request-validation = { module = "io.ktor:ktor-server-request-validation", version.ref = "ktorServerRequestValidation" }
ktor-server-test-host-jvm = { module = "io.ktor:ktor-server-test-host-jvm" }
ktor-server-websockets = { module = "io.ktor:ktor-server-websockets", version.ref = "ktor" }
lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "lifecycleRuntimeCompose" }
lifecycle-viewmodel-compose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycleViewmodelCompose" }
logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
ktor-server-core = { module = "io.ktor:ktor-server-core-jvm", version.ref = "ktor" }
ktor-server-netty = { module = "io.ktor:ktor-server-netty-jvm", version.ref = "ktor" }
@@ -120,6 +165,10 @@ ktor-server-tests = { module = "io.ktor:ktor-server-tests-jvm", version.ref = "k
material = { module = "androidx.compose.material:material", version.ref = "material" }
postgresql = { module = "org.postgresql:postgresql", version.ref = "psqlVersion" }
rest-assured = { module = "io.rest-assured:rest-assured", version.ref = "restAssuredVersion" }
symbol-processing-api = { module = "com.google.devtools.ksp:symbol-processing-api", version.ref = "symbolProcessingApi" }
koin-bom = { module = "io.insert-koin:koin-bom", version.ref = "koin-bom" }
koin-core = { module = "io.insert-koin:koin-core" }
androidx-lifecycle-livedata-core-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-core-ktx", version.ref = "lifecycleLivedataCoreKtx" }
[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }