Skip to content

Commit 8564898

Browse files
committed
feat: Add initial set of project dependencies
Adds a comprehensive set of libraries to establish the foundation for the application. This includes dependencies for: - **UI & Navigation:** Material 3 Adaptive Navigation Suite, Compose Navigation, and Coil for image loading. - **Networking:** Ktor client with content negotiation, serialization, logging, and auth modules. - **Data Persistence:** DataStore for key-value storage. - **Dependency Injection:** Koin for core, Compose, and ViewModel support. - **Serialization:** Kotlinx Serialization for JSON. - **Utilities:** Kermit for logging, FileKit for file dialogs, and a system theme detector. Configuration is also updated to include the Kotlin Serialization plugin and the JitPack repository.
1 parent c627d7b commit 8564898

File tree

4 files changed

+139
-6
lines changed

4 files changed

+139
-6
lines changed

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ plugins {
55
alias(libs.plugins.composeMultiplatform) apply false
66
alias(libs.plugins.composeCompiler) apply false
77
alias(libs.plugins.kotlinMultiplatform) apply false
8+
alias(libs.plugins.kotlinSerialization) apply false
89
}

composeApp/build.gradle.kts

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,67 @@ plugins {
55
alias(libs.plugins.composeMultiplatform)
66
alias(libs.plugins.composeCompiler)
77
alias(libs.plugins.composeHotReload)
8+
alias(libs.plugins.kotlinSerialization)
89
}
910

1011
kotlin {
1112
jvm()
12-
13+
1314
sourceSets {
1415
commonMain.dependencies {
1516
implementation(compose.runtime)
1617
implementation(compose.foundation)
17-
implementation(compose.material3)
1818
implementation(compose.ui)
1919
implementation(compose.components.resources)
2020
implementation(compose.components.uiToolingPreview)
21+
2122
implementation(libs.androidx.lifecycle.viewmodelCompose)
2223
implementation(libs.androidx.lifecycle.runtimeCompose)
24+
25+
implementation(compose.material3)
26+
implementation(compose.material3AdaptiveNavigationSuite)
27+
implementation(compose.materialIconsExtended)
28+
implementation(libs.material3.adaptive)
29+
30+
implementation(libs.androidx.navigation.compose)
31+
32+
implementation(libs.datastore.preferences)
33+
implementation(libs.datastore.core)
34+
35+
implementation(libs.coil.compose)
36+
implementation(libs.coil.compose.core)
37+
implementation(libs.coil.network.ktor3)
38+
implementation(libs.coil.mp)
39+
40+
implementation(libs.ktor.client.core)
41+
implementation(libs.ktor.client.content.negotiation)
42+
implementation(libs.ktor.client.serialization)
43+
implementation(libs.ktor.serialization.kotlinx.json)
44+
implementation(libs.ktor.client.logging)
45+
implementation(libs.ktor.client.auth)
46+
47+
api(libs.koin.core)
48+
implementation(libs.koin.compose)
49+
implementation(libs.koin.composeVM)
50+
51+
implementation(libs.kotlinx.serialization.json)
52+
53+
implementation(libs.kermit)
54+
55+
implementation(libs.filekit.dialogs)
56+
implementation(libs.filekit.dialogs.compose)
57+
58+
implementation(libs.dansoftowner.jSystemThemeDetector)
2359
}
2460
commonTest.dependencies {
2561
implementation(libs.kotlin.test)
2662
}
2763
jvmMain.dependencies {
2864
implementation(compose.desktop.currentOs)
65+
2966
implementation(libs.kotlinx.coroutinesSwing)
67+
68+
implementation(libs.ktor.client.okhttp)
3069
}
3170
}
3271
}

gradle/libs.versions.toml

Lines changed: 95 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,112 @@
11
[versions]
2-
androidx-lifecycle = "2.9.4"
2+
# Core Kotlin
3+
kotlin = "2.2.20"
4+
5+
# Coroutines & Serialization & Datetime
6+
kotlinx-coroutines = "1.10.2"
7+
kotlinx-serialization = "1.9.0"
8+
kotlinx-datetime = "0.7.1"
9+
10+
# Compose Multiplatform
311
composeHotReload = "1.0.0-beta07"
412
composeMultiplatform = "1.9.0"
13+
14+
# Androidx Core
15+
androidx-lifecycle = "2.9.4"
16+
17+
# Testing
518
junit = "4.13.2"
6-
kotlin = "2.2.20"
7-
kotlinx-coroutines = "1.10.2"
19+
20+
# Navigation
21+
androidx-navigation = "2.9.0-beta03"
22+
23+
# Material Design
24+
material3-adaptive = "1.1.2"
25+
26+
# DataStore
27+
datastore = "1.1.7"
28+
29+
# Image Loading
30+
coil3 = "3.3.0"
31+
32+
# Networking (Ktor)
33+
ktor = "3.2.3"
34+
35+
# Dependency Injection
36+
koin = "4.1.0"
37+
38+
# Logging
39+
kermit = "2.0.6"
40+
41+
# File
42+
filekit = "0.11.0"
43+
44+
jSystemThemeDetector = "3.6"
45+
846

947
[libraries]
48+
# Testing
1049
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
1150
kotlin-testJunit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
1251
junit = { module = "junit:junit", version.ref = "junit" }
52+
53+
# Androidx Core
1354
androidx-lifecycle-viewmodelCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
1455
androidx-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
56+
57+
# Kotlinx
1558
kotlinx-coroutinesSwing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
59+
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
60+
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }
61+
62+
# Material 3 Adaptive
63+
material3-adaptive = { module = "org.jetbrains.compose.material3.adaptive:adaptive", version.ref = "material3-adaptive" }
64+
material3-adaptive-layout = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive-layout", version.ref = "material3-adaptive" }
65+
material3-adaptive-navigation = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive-navigation", version.ref = "material3-adaptive" }
66+
67+
# Navigation
68+
androidx-navigation-compose = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "androidx-navigation" }
69+
70+
# DataStore
71+
datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastore" }
72+
datastore-core = { module = "androidx.datastore:datastore-core", version.ref = "datastore" }
73+
74+
# Dependency Injection (Koin)
75+
koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
76+
koin-compose = { module = "io.insert-koin:koin-compose", version.ref = "koin" }
77+
koin-composeVM = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koin" }
78+
koin-test = { module = "io.insert-koin:koin-test", version.ref = "koin" }
79+
80+
# Logging (Kermit)
81+
kermit = { module = "co.touchlab:kermit", version.ref = "kermit" }
82+
83+
# Ktor Client
84+
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
85+
ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
86+
ktor-client-serialization = { module = "io.ktor:ktor-client-serialization", version.ref = "ktor" }
87+
ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
88+
ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }
89+
ktor-client-auth = { module = "io.ktor:ktor-client-auth", version.ref = "ktor" }
90+
91+
# Platform-specific Ktor engines
92+
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
93+
ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" }
94+
95+
# Image Loading (Coil3)
96+
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil3" }
97+
coil-compose-core = { module = "io.coil-kt.coil3:coil-compose-core", version.ref = "coil3" }
98+
coil-network-ktor3 = { module = "io.coil-kt.coil3:coil-network-ktor3", version.ref = "coil3" }
99+
coil-mp = { module = "io.coil-kt.coil3:coil", version.ref = "coil3" }
100+
101+
# File
102+
filekit-dialogs = { module = "io.github.vinceglb:filekit-dialogs", version.ref = "filekit" }
103+
filekit-dialogs-compose = { module = "io.github.vinceglb:filekit-dialogs-compose", version.ref = "filekit" }
104+
105+
dansoftowner-jSystemThemeDetector = { group = "com.github.Dansoftowner", name = "jSystemThemeDetector", version.ref = "jSystemThemeDetector" }
16106

17107
[plugins]
18108
composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "composeHotReload" }
19109
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
20110
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
21-
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
111+
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
112+
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }

settings.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ pluginManagement {
1212
}
1313
mavenCentral()
1414
gradlePluginPortal()
15+
maven(url = "https://jitpack.io") {}
1516
}
1617
}
1718

@@ -25,6 +26,7 @@ dependencyResolutionManagement {
2526
}
2627
}
2728
mavenCentral()
29+
maven(url = "https://jitpack.io") {}
2830
}
2931
}
3032

0 commit comments

Comments
 (0)