diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index 50d4a64..9a17fde 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -1,5 +1,3 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { @@ -11,20 +9,15 @@ plugins { kotlin { androidTarget { - @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } sourceSets { - androidMain.dependencies { implementation(compose.preview) implementation(libs.androidx.activity.compose) - implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2") - implementation("androidx.lifecycle:lifecycle-runtime-compose:2.6.2") - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2") } commonMain.dependencies { implementation(compose.runtime) @@ -33,7 +26,7 @@ kotlin { implementation(compose.ui) implementation(compose.components.resources) implementation(compose.components.uiToolingPreview) - implementation(libs.androidx.lifecycle.viewmodel) + implementation(libs.androidx.lifecycle.viewmodelCompose) implementation(libs.androidx.lifecycle.runtimeCompose) implementation(projects.shared) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a142669..30dd5bd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,18 +1,17 @@ [versions] -agp = "8.7.3" -android-compileSdk = "35" +agp = "8.11.2" +android-compileSdk = "36" android-minSdk = "24" -android-targetSdk = "35" -androidx-activity = "1.10.1" +android-targetSdk = "36" +androidx-activity = "1.11.0" androidx-appcompat = "1.7.1" -androidx-constraintlayout = "2.2.1" -androidx-core = "1.16.0" -androidx-espresso = "3.6.1" -androidx-lifecycle = "2.9.1" -androidx-testExt = "1.2.1" -composeMultiplatform = "1.8.2" +androidx-core = "1.17.0" +androidx-espresso = "3.7.0" +androidx-lifecycle = "2.9.4" +androidx-testExt = "1.3.0" +composeMultiplatform = "1.9.0" junit = "4.13.2" -kotlin = "2.2.0" +kotlin = "2.2.10" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } @@ -22,9 +21,8 @@ androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx androidx-testExt-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-testExt" } androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-espresso" } androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" } -androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidx-constraintlayout" } androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" } -androidx-lifecycle-viewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel", version.ref = "androidx-lifecycle" } +androidx-lifecycle-viewmodelCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" } androidx-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" } [plugins] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 09523c0..d4081da 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index c6cda2a..15fd142 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -1,23 +1,20 @@ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidLibrary) - kotlin("plugin.serialization") version "2.2.0" - id("co.touchlab.skie") version "0.10.4" + kotlin("plugin.serialization") version "2.2.10" + id("co.touchlab.skie") version "0.10.6" } kotlin { androidTarget { - @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } listOf( - iosX64(), iosArm64(), iosSimulatorArm64() ).forEach { iosTarget -> @@ -27,14 +24,17 @@ kotlin { } } - val ktorVersion = "3.1.3" + val ktorVersion = "3.3.0" sourceSets { all { - languageSettings.optIn("kotlin.experimental.ExperimentalObjCName") + languageSettings { + optIn("kotlin.experimental.ExperimentalObjCName") + optIn("kotlin.time.ExperimentalTime") + } } commonMain.dependencies { - implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.2") + implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.7.1") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2") implementation("io.ktor:ktor-client-core:${ktorVersion}") implementation("io.ktor:ktor-client-content-negotiation:${ktorVersion}") diff --git a/shared/src/commonMain/kotlin/com/jetbrains/greeting/greetingkmp/NewYear.kt b/shared/src/commonMain/kotlin/com/jetbrains/greeting/greetingkmp/NewYear.kt index 67b8829..e294d14 100644 --- a/shared/src/commonMain/kotlin/com/jetbrains/greeting/greetingkmp/NewYear.kt +++ b/shared/src/commonMain/kotlin/com/jetbrains/greeting/greetingkmp/NewYear.kt @@ -1,6 +1,10 @@ package com.jetbrains.greeting.greetingkmp -import kotlinx.datetime.* +import kotlinx.datetime.LocalDate +import kotlinx.datetime.TimeZone +import kotlinx.datetime.daysUntil +import kotlinx.datetime.todayIn +import kotlin.time.Clock fun daysUntilNewYear(): Int { val today = Clock.System.todayIn(TimeZone.currentSystemDefault()) diff --git a/shared/src/commonMain/kotlin/com/jetbrains/greeting/greetingkmp/RocketComponent.kt b/shared/src/commonMain/kotlin/com/jetbrains/greeting/greetingkmp/RocketComponent.kt index 628a2b2..0bc0893 100644 --- a/shared/src/commonMain/kotlin/com/jetbrains/greeting/greetingkmp/RocketComponent.kt +++ b/shared/src/commonMain/kotlin/com/jetbrains/greeting/greetingkmp/RocketComponent.kt @@ -5,10 +5,10 @@ import io.ktor.client.call.body import io.ktor.client.plugins.contentnegotiation.* import io.ktor.client.request.get import io.ktor.serialization.kotlinx.json.* -import kotlinx.datetime.Instant import kotlinx.datetime.TimeZone import kotlinx.datetime.toLocalDateTime import kotlinx.serialization.json.Json +import kotlin.time.Instant class RocketComponent { private val httpClient = HttpClient { @@ -28,7 +28,7 @@ class RocketComponent { val date = Instant.parse(lastSuccessLaunch.launchDateUTC) .toLocalDateTime(TimeZone.currentSystemDefault()) - return "${date.month} ${date.dayOfMonth}, ${date.year}" + return "${date.month} ${date.day}, ${date.year}" } suspend fun launchPhrase(): String =