From 94bd369a69846428523cdbb823151f360e20bb16 Mon Sep 17 00:00:00 2001 From: Yasan Ghaffarian Date: Sun, 28 Dec 2025 18:51:57 +0100 Subject: [PATCH] Migrate to the new KMP AGP plugin (com.android.kotlin.multiplatform.library) --- kotlin-multiplatform/about/build.gradle.kts | 30 +++------- kotlin-multiplatform/build.gradle.kts | 2 +- kotlin-multiplatform/compose/build.gradle.kts | 27 +++------ kotlin-multiplatform/core/build.gradle.kts | 25 +++----- .../gradle/libs.versions.toml | 2 +- kotlin-multiplatform/koin/build.gradle.kts | 25 +++----- .../sample/androidApp/build.gradle.kts | 55 ++++++++++++++++++ .../ic_launcher-playstore.png | Bin .../src/main}/AndroidManifest.xml | 0 .../toolkit/sample/android}/MainActivity.kt | 3 +- .../sample/android}/SampleApplication.kt | 3 +- .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../main}/res/mipmap-hdpi/ic_launcher.webp | Bin .../mipmap-hdpi/ic_launcher_foreground.webp | Bin .../res/mipmap-hdpi/ic_launcher_round.webp | Bin .../main}/res/mipmap-mdpi/ic_launcher.webp | Bin .../mipmap-mdpi/ic_launcher_foreground.webp | Bin .../res/mipmap-mdpi/ic_launcher_round.webp | Bin .../main}/res/mipmap-xhdpi/ic_launcher.webp | Bin .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin .../main}/res/mipmap-xxhdpi/ic_launcher.webp | Bin .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin .../main}/res/mipmap-xxxhdpi/ic_launcher.webp | Bin .../ic_launcher_foreground.webp | Bin .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin .../res/values/ic_launcher_background.xml | 0 .../src/main}/res/values/strings.xml | 0 .../sample/composeApp/build.gradle.kts | 50 ++++------------ .../toolkit/sample/navigation/AboutScreen.kt | 6 +- .../toolkit/sample/navigation/ColorsScreen.kt | 6 +- .../toolkit/sample/navigation/HomeScreen.kt | 14 ++--- kotlin-multiplatform/settings.gradle.kts | 1 + 35 files changed, 118 insertions(+), 131 deletions(-) create mode 100644 kotlin-multiplatform/sample/androidApp/build.gradle.kts rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp}/ic_launcher-playstore.png (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/AndroidManifest.xml (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain/kotlin/glass/yasan/toolkit/sample => androidApp/src/main/kotlin/glass/yasan/toolkit/sample/android}/MainActivity.kt (81%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain/kotlin/glass/yasan/toolkit/sample => androidApp/src/main/kotlin/glass/yasan/toolkit/sample/android}/SampleApplication.kt (91%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-anydpi-v26/ic_launcher.xml (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-anydpi-v26/ic_launcher_round.xml (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-hdpi/ic_launcher.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-hdpi/ic_launcher_foreground.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-hdpi/ic_launcher_round.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-mdpi/ic_launcher.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-mdpi/ic_launcher_foreground.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-mdpi/ic_launcher_round.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-xhdpi/ic_launcher.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-xhdpi/ic_launcher_foreground.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-xhdpi/ic_launcher_round.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-xxhdpi/ic_launcher.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-xxhdpi/ic_launcher_foreground.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-xxhdpi/ic_launcher_round.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-xxxhdpi/ic_launcher.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-xxxhdpi/ic_launcher_foreground.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/mipmap-xxxhdpi/ic_launcher_round.webp (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/values/ic_launcher_background.xml (100%) rename kotlin-multiplatform/sample/{composeApp/src/androidMain => androidApp/src/main}/res/values/strings.xml (100%) diff --git a/kotlin-multiplatform/about/build.gradle.kts b/kotlin-multiplatform/about/build.gradle.kts index 634817f..eac9572 100644 --- a/kotlin-multiplatform/about/build.gradle.kts +++ b/kotlin-multiplatform/about/build.gradle.kts @@ -6,7 +6,7 @@ val artifactId = "about" plugins { alias(libs.plugins.jetbrains.kotlin.multiplatform) - alias(libs.plugins.android.library) + alias(libs.plugins.android.kotlin.multiplatform.library) alias(libs.plugins.jetbrains.compose) alias(libs.plugins.jetbrains.kotlin.compose) alias(libs.plugins.jetbrains.compose.hotreload) @@ -20,13 +20,18 @@ kotlin { freeCompilerArgs.add("-Xcontext-sensitive-resolution") } - androidTarget { - publishLibraryVariants("release") - @OptIn(ExperimentalKotlinGradlePluginApi::class) + androidLibrary { + namespace = "glass.yasan.toolkit.compose.about" + compileSdk = libs.versions.android.sdk.compile.get().toInt() + minSdk = libs.versions.android.sdk.min.get().toInt() + + androidResources.enable = true + compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } + jvm() iosX64() iosArm64() @@ -72,23 +77,6 @@ kotlin { } } -android { - namespace = "glass.yasan.toolkit.compose.about" - compileSdk = libs.versions.android.sdk.compile.get().toInt() - - defaultConfig { - minSdk = libs.versions.android.sdk.min.get().toInt() - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } -} - -dependencies { - debugImplementation(compose.uiTooling) -} compose.resources { publicResClass = false diff --git a/kotlin-multiplatform/build.gradle.kts b/kotlin-multiplatform/build.gradle.kts index 0942212..8a90f28 100644 --- a/kotlin-multiplatform/build.gradle.kts +++ b/kotlin-multiplatform/build.gradle.kts @@ -3,7 +3,7 @@ plugins { alias(libs.plugins.jetbrains.kotlin.compose) apply false alias(libs.plugins.jetbrains.kotlin.multiplatform) apply false alias(libs.plugins.android.application) apply false - alias(libs.plugins.android.library) apply false + alias(libs.plugins.android.kotlin.multiplatform.library) apply false alias(libs.plugins.jetbrains.compose) apply false alias(libs.plugins.jetbrains.compose.hotreload) apply false alias(libs.plugins.vanniktech.maven.publish) apply false diff --git a/kotlin-multiplatform/compose/build.gradle.kts b/kotlin-multiplatform/compose/build.gradle.kts index 56a631f..1b4f289 100644 --- a/kotlin-multiplatform/compose/build.gradle.kts +++ b/kotlin-multiplatform/compose/build.gradle.kts @@ -6,7 +6,7 @@ val artifactId = "compose" plugins { alias(libs.plugins.jetbrains.kotlin.multiplatform) - alias(libs.plugins.android.library) + alias(libs.plugins.android.kotlin.multiplatform.library) alias(libs.plugins.jetbrains.compose) alias(libs.plugins.jetbrains.kotlin.compose) alias(libs.plugins.jetbrains.compose.hotreload) @@ -21,13 +21,18 @@ kotlin { freeCompilerArgs.add("-Xcontext-sensitive-resolution") } - androidTarget { - publishLibraryVariants("release") - @OptIn(ExperimentalKotlinGradlePluginApi::class) + androidLibrary { + namespace = "glass.yasan.toolkit.$artifactId" + compileSdk = libs.versions.android.sdk.compile.get().toInt() + minSdk = libs.versions.android.sdk.min.get().toInt() + + androidResources.enable = true + compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } + jvm() iosX64() iosArm64() @@ -86,20 +91,6 @@ kotlin { } } -android { - namespace = "glass.yasan.toolkit.$artifactId" - compileSdk = libs.versions.android.sdk.compile.get().toInt() - - defaultConfig { - minSdk = libs.versions.android.sdk.min.get().toInt() - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } -} - compose.resources { publicResClass = false packageOfResClass = "glass.yasan.toolkit.$artifactId" diff --git a/kotlin-multiplatform/core/build.gradle.kts b/kotlin-multiplatform/core/build.gradle.kts index 25b485e..282276e 100644 --- a/kotlin-multiplatform/core/build.gradle.kts +++ b/kotlin-multiplatform/core/build.gradle.kts @@ -6,7 +6,7 @@ val artifactId = "core" plugins { alias(libs.plugins.jetbrains.kotlin.multiplatform) - alias(libs.plugins.android.library) + alias(libs.plugins.android.kotlin.multiplatform.library) } kotlin { @@ -18,13 +18,16 @@ kotlin { freeCompilerArgs.add("-Xcontext-sensitive-resolution") } - androidTarget { - publishLibraryVariants("release") - @OptIn(ExperimentalKotlinGradlePluginApi::class) + androidLibrary { + namespace = "glass.yasan.toolkit.$artifactId" + compileSdk = libs.versions.android.sdk.compile.get().toInt() + minSdk = libs.versions.android.sdk.min.get().toInt() + compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } + jvm() iosX64() iosArm64() @@ -67,20 +70,6 @@ kotlin { } } -android { - namespace = "glass.yasan.toolkit.$artifactId" - compileSdk = libs.versions.android.sdk.compile.get().toInt() - - defaultConfig { - minSdk = libs.versions.android.sdk.min.get().toInt() - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } -} - configure { coordinates(artifactId = artifactId) } diff --git a/kotlin-multiplatform/gradle/libs.versions.toml b/kotlin-multiplatform/gradle/libs.versions.toml index 73bc7a6..2cdf269 100644 --- a/kotlin-multiplatform/gradle/libs.versions.toml +++ b/kotlin-multiplatform/gradle/libs.versions.toml @@ -57,7 +57,7 @@ touchlab-kermit = { module = "co.touchlab:kermit", version.ref = "touchlab-kermi [plugins] android-application = { id = "com.android.application", version.ref = "agp" } -android-library = { id = "com.android.library", version.ref = "agp" } +android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" } arturbosch-detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "arturbosch-detekt" } jetbrains-compose-hotreload = { id = "org.jetbrains.compose.hot-reload", version.ref = "jetbrains-compose-hotreload" } iurysouza-modulegraph = { id = "dev.iurysouza.modulegraph", version.ref = "iurysouza-modulegraph" } diff --git a/kotlin-multiplatform/koin/build.gradle.kts b/kotlin-multiplatform/koin/build.gradle.kts index ccb626b..5c77b98 100644 --- a/kotlin-multiplatform/koin/build.gradle.kts +++ b/kotlin-multiplatform/koin/build.gradle.kts @@ -6,7 +6,7 @@ val artifactId = "koin" plugins { alias(libs.plugins.jetbrains.kotlin.multiplatform) - alias(libs.plugins.android.library) + alias(libs.plugins.android.kotlin.multiplatform.library) } kotlin { @@ -18,13 +18,16 @@ kotlin { freeCompilerArgs.add("-Xcontext-sensitive-resolution") } - androidTarget { - publishLibraryVariants("release") - @OptIn(ExperimentalKotlinGradlePluginApi::class) + androidLibrary { + namespace = "glass.yasan.toolkit.$artifactId" + compileSdk = libs.versions.android.sdk.compile.get().toInt() + minSdk = libs.versions.android.sdk.min.get().toInt() + compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } + jvm() iosX64() iosArm64() @@ -79,20 +82,6 @@ kotlin { } } -android { - namespace = "glass.yasan.toolkit.$artifactId" - compileSdk = libs.versions.android.sdk.compile.get().toInt() - - defaultConfig { - minSdk = libs.versions.android.sdk.min.get().toInt() - } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } -} - configure { coordinates(artifactId = artifactId) } diff --git a/kotlin-multiplatform/sample/androidApp/build.gradle.kts b/kotlin-multiplatform/sample/androidApp/build.gradle.kts new file mode 100644 index 0000000..399dae0 --- /dev/null +++ b/kotlin-multiplatform/sample/androidApp/build.gradle.kts @@ -0,0 +1,55 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.jetbrains.kotlin.android) + alias(libs.plugins.jetbrains.kotlin.compose) +} + +android { + namespace = "glass.yasan.toolkit.sample.android" + compileSdk = libs.versions.sample.android.sdk.compile.get().toInt() + + defaultConfig { + applicationId = "glass.yasan.toolkit.sample" + minSdk = libs.versions.sample.android.sdk.min.get().toInt() + targetSdk = libs.versions.sample.android.sdk.target.get().toInt() + versionCode = 1 + versionName = "1.0.0" + } + + packaging { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + } + } + + buildTypes { + release { + isMinifyEnabled = false + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlin { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_11) + } + } + + buildFeatures { + compose = true + } +} + +dependencies { + implementation(project(":sample:composeApp")) + + implementation(libs.androidx.activity.compose) + implementation(libs.koin.android) + debugImplementation(libs.androidx.compose.ui.tooling) +} diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/ic_launcher-playstore.png b/kotlin-multiplatform/sample/androidApp/ic_launcher-playstore.png similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/ic_launcher-playstore.png rename to kotlin-multiplatform/sample/androidApp/ic_launcher-playstore.png diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/AndroidManifest.xml b/kotlin-multiplatform/sample/androidApp/src/main/AndroidManifest.xml similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/AndroidManifest.xml rename to kotlin-multiplatform/sample/androidApp/src/main/AndroidManifest.xml diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/kotlin/glass/yasan/toolkit/sample/MainActivity.kt b/kotlin-multiplatform/sample/androidApp/src/main/kotlin/glass/yasan/toolkit/sample/android/MainActivity.kt similarity index 81% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/kotlin/glass/yasan/toolkit/sample/MainActivity.kt rename to kotlin-multiplatform/sample/androidApp/src/main/kotlin/glass/yasan/toolkit/sample/android/MainActivity.kt index 7e6f5e1..b280483 100644 --- a/kotlin-multiplatform/sample/composeApp/src/androidMain/kotlin/glass/yasan/toolkit/sample/MainActivity.kt +++ b/kotlin-multiplatform/sample/androidApp/src/main/kotlin/glass/yasan/toolkit/sample/android/MainActivity.kt @@ -1,9 +1,10 @@ -package glass.yasan.toolkit.sample +package glass.yasan.toolkit.sample.android import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge +import glass.yasan.toolkit.sample.SampleApp class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/kotlin/glass/yasan/toolkit/sample/SampleApplication.kt b/kotlin-multiplatform/sample/androidApp/src/main/kotlin/glass/yasan/toolkit/sample/android/SampleApplication.kt similarity index 91% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/kotlin/glass/yasan/toolkit/sample/SampleApplication.kt rename to kotlin-multiplatform/sample/androidApp/src/main/kotlin/glass/yasan/toolkit/sample/android/SampleApplication.kt index e41aef5..9207dda 100644 --- a/kotlin-multiplatform/sample/composeApp/src/androidMain/kotlin/glass/yasan/toolkit/sample/SampleApplication.kt +++ b/kotlin-multiplatform/sample/androidApp/src/main/kotlin/glass/yasan/toolkit/sample/android/SampleApplication.kt @@ -1,4 +1,4 @@ -package glass.yasan.toolkit.sample +package glass.yasan.toolkit.sample.android import android.app.Application import glass.yasan.toolkit.sample.di.sampleModule @@ -17,4 +17,3 @@ class SampleApplication : Application() { } } } - diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-hdpi/ic_launcher.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-hdpi/ic_launcher.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_foreground.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_foreground.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-hdpi/ic_launcher_round.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-hdpi/ic_launcher_round.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-mdpi/ic_launcher.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-mdpi/ic_launcher.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_foreground.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_foreground.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-mdpi/ic_launcher_round.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-mdpi/ic_launcher_round.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xhdpi/ic_launcher.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xhdpi/ic_launcher.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_foreground.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_foreground.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xhdpi/ic_launcher_round.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xhdpi/ic_launcher_round.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_foreground.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_foreground.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.webp b/kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.webp rename to kotlin-multiplatform/sample/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/values/ic_launcher_background.xml b/kotlin-multiplatform/sample/androidApp/src/main/res/values/ic_launcher_background.xml similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/values/ic_launcher_background.xml rename to kotlin-multiplatform/sample/androidApp/src/main/res/values/ic_launcher_background.xml diff --git a/kotlin-multiplatform/sample/composeApp/src/androidMain/res/values/strings.xml b/kotlin-multiplatform/sample/androidApp/src/main/res/values/strings.xml similarity index 100% rename from kotlin-multiplatform/sample/composeApp/src/androidMain/res/values/strings.xml rename to kotlin-multiplatform/sample/androidApp/src/main/res/values/strings.xml diff --git a/kotlin-multiplatform/sample/composeApp/build.gradle.kts b/kotlin-multiplatform/sample/composeApp/build.gradle.kts index 2a1aca3..accedad 100644 --- a/kotlin-multiplatform/sample/composeApp/build.gradle.kts +++ b/kotlin-multiplatform/sample/composeApp/build.gradle.kts @@ -4,7 +4,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.jetbrains.kotlin.multiplatform) - alias(libs.plugins.android.application) + alias(libs.plugins.android.kotlin.multiplatform.library) alias(libs.plugins.jetbrains.compose) alias(libs.plugins.jetbrains.kotlin.compose) alias(libs.plugins.jetbrains.kotlin.serialization) @@ -16,11 +16,18 @@ kotlin { freeCompilerArgs.add("-Xcontext-sensitive-resolution") } - androidTarget { + androidLibrary { + namespace = "glass.yasan.toolkit.sample" + compileSdk = libs.versions.sample.android.sdk.compile.get().toInt() + minSdk = libs.versions.sample.android.sdk.min.get().toInt() + + androidResources.enable = true + compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } + jvm() @OptIn(ExperimentalWasmDsl::class) @@ -78,45 +85,12 @@ kotlin { implementation(libs.jetbrains.kotlinx.coroutines.swing) } } - androidMain { - dependencies { - implementation(compose.preview) - implementation(libs.androidx.activity.compose) - implementation(libs.koin.android) - } - } - } -} - -android { - namespace = "glass.yasan.toolkit.sample" - compileSdk = libs.versions.sample.android.sdk.compile.get().toInt() - - defaultConfig { - applicationId = "glass.yasan.toolkit.sample" - minSdk = libs.versions.sample.android.sdk.min.get().toInt() - targetSdk = libs.versions.sample.android.sdk.target.get().toInt() - versionCode = 1 - versionName = "1.0.0" - } - packaging { - resources { - excludes += "/META-INF/{AL2.0,LGPL2.1}" - } - } - buildTypes { - getByName("release") { - isMinifyEnabled = false - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 } } -dependencies { - debugImplementation(compose.uiTooling) +compose.resources { + packageOfResClass = "glass.yasan.toolkit.sample" + generateResClass = auto } compose.desktop { diff --git a/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/AboutScreen.kt b/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/AboutScreen.kt index fd40ec9..3fe79c1 100644 --- a/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/AboutScreen.kt +++ b/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/AboutScreen.kt @@ -14,9 +14,9 @@ import androidx.compose.ui.unit.dp import glass.yasan.kepko.component.Icon import glass.yasan.kepko.foundation.theme.KepkoTheme import glass.yasan.toolkit.about.presentation.compose.ToolkitDeveloperContent -import glass.yasan.toolkit.composeapp.generated.resources.Res -import glass.yasan.toolkit.composeapp.generated.resources.arrow_back -import glass.yasan.toolkit.composeapp.generated.resources.go_back +import glass.yasan.toolkit.sample.Res +import glass.yasan.toolkit.sample.arrow_back +import glass.yasan.toolkit.sample.go_back import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.stringResource diff --git a/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/ColorsScreen.kt b/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/ColorsScreen.kt index 5abfb43..876e6b4 100644 --- a/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/ColorsScreen.kt +++ b/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/ColorsScreen.kt @@ -18,9 +18,9 @@ import glass.yasan.kepko.component.Icon import glass.yasan.kepko.component.TextMono import glass.yasan.kepko.foundation.theme.KepkoTheme import glass.yasan.toolkit.compose.color.toContentColor -import glass.yasan.toolkit.composeapp.generated.resources.Res -import glass.yasan.toolkit.composeapp.generated.resources.arrow_back -import glass.yasan.toolkit.composeapp.generated.resources.go_back +import glass.yasan.toolkit.sample.Res +import glass.yasan.toolkit.sample.arrow_back +import glass.yasan.toolkit.sample.go_back import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.stringResource diff --git a/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/HomeScreen.kt b/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/HomeScreen.kt index 4765988..cb05945 100644 --- a/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/HomeScreen.kt +++ b/kotlin-multiplatform/sample/composeApp/src/commonMain/kotlin/glass/yasan/toolkit/sample/navigation/HomeScreen.kt @@ -29,13 +29,13 @@ import glass.yasan.kepko.foundation.theme.KepkoTheme import glass.yasan.kepko.foundation.theme.ThemeStyle import glass.yasan.kepko.util.asPreferenceRadioGroupItems import glass.yasan.toolkit.about.presentation.compose.ToolkitDeveloperBanner -import glass.yasan.toolkit.composeapp.generated.resources.Res -import glass.yasan.toolkit.composeapp.generated.resources.about -import glass.yasan.toolkit.composeapp.generated.resources.app_icon -import glass.yasan.toolkit.composeapp.generated.resources.app_title -import glass.yasan.toolkit.composeapp.generated.resources.colors -import glass.yasan.toolkit.composeapp.generated.resources.decrement -import glass.yasan.toolkit.composeapp.generated.resources.increment +import glass.yasan.toolkit.sample.Res +import glass.yasan.toolkit.sample.about +import glass.yasan.toolkit.sample.app_icon +import glass.yasan.toolkit.sample.app_title +import glass.yasan.toolkit.sample.colors +import glass.yasan.toolkit.sample.decrement +import glass.yasan.toolkit.sample.increment import glass.yasan.toolkit.sample.SampleViewModel import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.stringResource diff --git a/kotlin-multiplatform/settings.gradle.kts b/kotlin-multiplatform/settings.gradle.kts index 77c07fa..0764c64 100644 --- a/kotlin-multiplatform/settings.gradle.kts +++ b/kotlin-multiplatform/settings.gradle.kts @@ -19,4 +19,5 @@ include(":compose") include(":core") include(":koin") include(":sample") +include(":sample:androidApp") include(":sample:composeApp")