Skip to content

Commit

Permalink
Migrate to compose multiplatform
Browse files Browse the repository at this point in the history
  • Loading branch information
saket committed Sep 21, 2023
1 parent fe3831c commit ebdf1da
Show file tree
Hide file tree
Showing 18 changed files with 41 additions and 14 deletions.
2 changes: 2 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ buildscript {
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.compose.multiplatform) apply false
alias(libs.plugins.mavenPublish) apply false
alias(libs.plugins.paparazzi) apply false
alias(libs.plugins.dokka) apply false
Expand Down
4 changes: 4 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@ org.gradle.jvmargs=-Xmx1536m

android.useAndroidX=true
android.enableJetifier=false

kotlin.mpp.androidSourceSetLayoutVersion=2
kotlin.mpp.androidGradlePluginCompatibility.nowarn=true
org.jetbrains.compose.experimental.uikit.enabled=true
4 changes: 3 additions & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ agp = "8.1.0"
androidx-compose-ui = "1.5.1" # https://developer.android.com/jetpack/androidx/releases/compose-ui
androidx-compose-ui-material3 = "1.1.1"
androidx-compose-compiler = "1.5.3" # https://developer.android.com/jetpack/androidx/releases/compose-compiler
compose-multiplatform = "1.5.1" # https://github.com/JetBrains/compose-multiplatform/releases
androidx-appcompat = "1.6.1"
androidx-activity = "1.7.2" # https://developer.android.com/jetpack/androidx/releases/activity
androidx-savedstate = "1.2.1" # https://developer.android.com/jetpack/androidx/releases/savedstate
Expand All @@ -21,11 +22,12 @@ android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
paparazzi = { id = "app.cash.paparazzi", version.ref = "paparazzi" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
compose-multiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
mavenPublish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" }

[libraries]
## TODO remove compose libs in favor of declaring via jetbrains compose plugin
compose-foundation = { module = "androidx.compose.foundation:foundation", version.ref = "androidx-compose-ui" }
compose-ui = { module = "androidx.compose.ui:ui", version.ref = "androidx-compose-ui" }
compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "androidx-compose-ui-material3" }
Expand Down
44 changes: 32 additions & 12 deletions library/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,41 @@
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.compose.multiplatform)
alias(libs.plugins.mavenPublish)
alias(libs.plugins.paparazzi)
}

kotlin {
@Suppress("OPT_IN_USAGE")
targetHierarchy.default()

androidTarget()
jvm()
iosX64()
iosArm64()
iosSimulatorArm64()

sourceSets {
val commonMain by getting {
dependencies {
implementation(compose.ui)
implementation(compose.foundation)
}
}

val androidUnitTest by getting {
dependencies {
implementation(libs.junit)
implementation(libs.compose.material3)
implementation(libs.compose.materialIcons)
implementation(libs.androidx.savedstate)
implementation(libs.androidx.lifecycle)
}
}
}
}

android {
namespace = "me.saket.swipe"

Expand All @@ -26,17 +57,6 @@ android {
}
}

dependencies {
implementation(libs.compose.ui)
implementation(libs.compose.foundation)

testImplementation(libs.junit)
testImplementation(libs.compose.material3)
testImplementation(libs.compose.materialIcons)
testImplementation(libs.androidx.savedstate)
testImplementation(libs.androidx.lifecycle)
}

// Used on CI to prevent publishing of non-snapshot versions.
tasks.register("throwIfVersionIsNotSnapshot") {
val libraryVersion = properties["VERSION_NAME"] as String
Expand Down
1 change: 0 additions & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ pluginManagement {
}

dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
Expand Down

0 comments on commit ebdf1da

Please sign in to comment.