Skip to content

Commit

Permalink
Migrate to kotlin 2.0.10, compose-multiplatform 17.0-beta02, decompos…
Browse files Browse the repository at this point in the history
…e 3.0.0 and decompose-router 0.8.0
  • Loading branch information
xxfast committed Sep 24, 2024
1 parent 3f077d5 commit d620ef9
Show file tree
Hide file tree
Showing 40 changed files with 729 additions and 697 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ xcuserdata
!**/.idea/runConfigurations
!**/.idea/icon.svg
!**/.idea/.name
/.kotlin/
6 changes: 4 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
plugins { }
plugins {
alias(libs.plugins.compose.multiplatform) apply false
alias(libs.plugins.compose.compiler) apply false
}

buildscript {
repositories {
Expand All @@ -9,7 +12,6 @@ buildscript {

dependencies {
classpath(libs.agp)
classpath(libs.compose.multiplatform)
classpath(libs.kotlin.gradle.plugin)
classpath(libs.kotlin.serialization)
classpath(libs.molecule.gradle.plugin)
Expand Down
4 changes: 3 additions & 1 deletion client/android/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
plugins {
id("com.android.application")
kotlin("android")
id("org.jetbrains.compose")

alias(libs.plugins.compose.multiplatform)
alias(libs.plugins.compose.compiler)
}

android {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi
import androidx.compose.material3.windowsizeclass.WindowSizeClass
import androidx.compose.material3.windowsizeclass.calculateWindowSizeClass
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
import androidx.core.view.WindowCompat
import io.github.xxfast.androidx.compose.material3.windowsizeclass.LocalWindowSizeClass
import io.github.xxfast.androidx.compose.material3.windowsizeclass.WindowSizeClass
import io.github.xxfast.androidx.compose.material3.windowsizeclass.calculateWindowSizeClass
import io.github.xxfast.decompose.router.LocalRouterContext
import io.github.xxfast.decompose.router.RouterContext
import io.github.xxfast.decompose.router.defaultRouterContext
Expand All @@ -27,6 +28,7 @@ class MainActivity : ComponentActivity() {
appStorage = filesDir.path

setContent {
@OptIn(ExperimentalMaterial3WindowSizeClassApi::class)
val windowSizeClass: WindowSizeClass = calculateWindowSizeClass(this)
println(windowSizeClass)

Expand Down
22 changes: 10 additions & 12 deletions client/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,18 @@ import com.codingfeline.buildkonfig.compiler.FieldSpec.Type.STRING
plugins {
kotlin("multiplatform")
id("com.android.library")
id("org.jetbrains.compose")

alias(libs.plugins.compose.multiplatform)
alias(libs.plugins.compose.compiler)

id("kotlin-parcelize")
kotlin("plugin.serialization")
id("com.codingfeline.buildkonfig")
}

kotlin {
applyDefaultHierarchyTemplate()

androidTarget()

jvm("desktop")
Expand All @@ -24,8 +29,7 @@ kotlin {
).forEach { target ->
target.binaries {
framework {
baseName = "NyTimes"

baseName = "App"
export(libs.decompose.router)
}
}
Expand All @@ -46,8 +50,9 @@ kotlin {
implementation(compose.materialIconsExtended)

implementation(libs.molecule.runtime)
implementation(libs.compose.multiplatform.material3.windowsizeclass)
implementation(libs.decompose)
implementation(libs.decompose.compose.multiplatform)
implementation(libs.decompose.compose)
implementation(libs.essenty.parcelable)
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.content.negotiation)
Expand Down Expand Up @@ -81,14 +86,7 @@ kotlin {
}
}

val iosX64Main by getting
val iosArm64Main by getting
val iosSimulatorArm64Main by getting
val iosMain by creating {
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
val iosMain by getting {
dependencies {
implementation(libs.ktor.client.darwin)
implementation(libs.kstore.file)
Expand Down
6 changes: 4 additions & 2 deletions client/desktop/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat.Msi

plugins {
kotlin("jvm")
id("org.jetbrains.compose")
alias(libs.plugins.compose.multiplatform)
alias(libs.plugins.compose.compiler)
}

dependencies {
Expand All @@ -15,8 +16,9 @@ dependencies {
implementation(compose.material3)
implementation(compose.materialIconsExtended)
implementation(compose.preview)
implementation(libs.compose.multiplatform.material3.windowsizeclass)
implementation(libs.decompose)
implementation(libs.decompose.compose.multiplatform)
implementation(libs.decompose.compose)
implementation(libs.decompose.router)
implementation(libs.harawata.appdirs)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package io.github.xxfast.nytimes.desktop

import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi
import androidx.compose.material3.windowsizeclass.WindowSizeClass
import androidx.compose.material3.windowsizeclass.calculateWindowSizeClass
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.WindowState
import androidx.compose.ui.window.application
import androidx.compose.ui.window.rememberWindowState
import io.github.xxfast.androidx.compose.material3.windowsizeclass.LocalWindowSizeClass
import io.github.xxfast.androidx.compose.material3.windowsizeclass.WindowSizeClass
import io.github.xxfast.androidx.compose.material3.windowsizeclass.calculateWindowSizeClass
import io.github.xxfast.decompose.router.LocalRouterContext
import io.github.xxfast.decompose.router.RouterContext
import io.github.xxfast.decompose.router.defaultRouterContext
Expand All @@ -20,7 +21,7 @@ fun main() {
application {
val windowState: WindowState = rememberWindowState()
val rootRouterContext: RouterContext = defaultRouterContext(windowState = windowState)
val windowSizeClass: WindowSizeClass = calculateWindowSizeClass(windowState)


appStorage = AppDirsFactory.getInstance()
.getUserDataDir("io.github.xxfast.nytimes", "1.0.0", "xxfast")
Expand All @@ -30,6 +31,9 @@ fun main() {
state = windowState,
onCloseRequest = { exitApplication() }
) {
@OptIn(ExperimentalMaterial3WindowSizeClassApi::class)
val windowSizeClass: WindowSizeClass = calculateWindowSizeClass()

CompositionLocalProvider(
LocalRouterContext provides rootRouterContext,
LocalWindowSizeClass provides windowSizeClass,
Expand Down
2 changes: 1 addition & 1 deletion client/ios/ios.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "cd \"$SRCROOT/../..\"\nsource ~/.bash_profile\necho $JAVA_HOME\njava -version\n./gradlew :client:embedAndSignAppleFrameworkForXcode\n";
shellScript = "cd \"$SRCROOT/../..\"\n./gradlew :client:embedAndSignAppleFrameworkForXcode\n";
};
/* End PBXShellScriptBuildPhase section */

Expand Down
2 changes: 1 addition & 1 deletion client/ios/ios/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import SwiftUI
import Foundation
import NyTimes
import App

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
Expand Down
2 changes: 2 additions & 0 deletions client/ios/ios/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,7 @@
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
</dict>
</plist>

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.github.xxfast.androidx.compose.material3.windowsizeclass

import androidx.compose.material3.windowsizeclass.WindowSizeClass
import androidx.compose.runtime.ProvidableCompositionLocal
import androidx.compose.runtime.staticCompositionLocalOf

Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit d620ef9

Please sign in to comment.