From 7b1f1e2ef63ad2ec3dd97de2b99483f4e2309b97 Mon Sep 17 00:00:00 2001 From: Chayan Pal Date: Fri, 4 Apr 2025 21:47:39 +0530 Subject: [PATCH] feat: Add Kotlin serialization and update dependencies This commit introduces the Kotlin serialization plugin and necessary dependencies for JSON serialization. It also updates several library versions. Changes: - Added the Kotlin serialization plugin: `org.jetbrains.kotlin.plugin.serialization` version `2.1.20` to both the project and the app level `build.gradle.kts` files. This is for JSON serialization. - Added the JSON serialization library dependency: `org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0`. - Added dependencies for ViewModel, Koin, Compose Navigation, SplashScreen, extended Material Icons, Retrofit, and Material 3. - Updated `kotlin` version to `2.1.20` - Updated `composeBom` version to `2025.03.01` --- app/build.gradle.kts | 38 ++++++++++++++++++++++++++++++++++++++ build.gradle.kts | 1 + gradle/libs.versions.toml | 4 ++-- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5c999b5..85262cd 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -2,6 +2,7 @@ plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) + id("org.jetbrains.kotlin.plugin.serialization") version "2.1.20" } android { @@ -41,6 +42,43 @@ android { dependencies { + // ViewModel + implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") + // ViewModel utilities for Compose + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7") + // Lifecycle utilities for Compose + implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.7") + + // Koin + implementation("io.insert-koin:koin-core:4.0.3") + implementation("io.insert-koin:koin-android:4.0.3") + implementation("io.insert-koin:koin-androidx-compose:4.0.3") + implementation("io.insert-koin:koin-androidx-compose-navigation:4.0.3") + + // Compose Navigation + implementation("androidx.navigation:navigation-compose:2.8.9") + + // JSON serialization library, works with the Kotlin serialization plugin + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0") + + // SplashScreen + implementation("androidx.core:core-splashscreen:1.2.0-beta01") + + // Icon + // Compose Material Icons Extended + implementation("androidx.compose.material:material-icons-extended:1.7.8") + + // Retrofit + implementation("com.squareup.retrofit2:retrofit:2.11.0") + implementation("com.squareup.retrofit2:converter-gson:2.11.0") + implementation("com.squareup.okhttp3:okhttp:4.12.0") + implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") + + // Material 3 + implementation("androidx.compose.material3:material3:1.3.1") + implementation("androidx.compose.material3:material3-android:1.3.1") + implementation("androidx.compose.ui:ui:1.7.8") + implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) diff --git a/build.gradle.kts b/build.gradle.kts index 952b930..3639073 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,4 +3,5 @@ plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.compose) apply false + id("org.jetbrains.kotlin.plugin.serialization") version "2.1.20" apply false } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6313c8f..18377f0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,13 +1,13 @@ [versions] agp = "8.9.1" -kotlin = "2.0.21" +kotlin = "2.1.20" coreKtx = "1.15.0" junit = "4.13.2" junitVersion = "1.2.1" espressoCore = "3.6.1" lifecycleRuntimeKtx = "2.8.7" activityCompose = "1.10.1" -composeBom = "2024.09.00" +composeBom = "2025.03.01" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }