diff --git a/CHANGELOG.md b/CHANGELOG.md index d89e2bb08..4c2b82260 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ Please refer to [2.0.0-alpha10 -> 2.0.0 – Migration guide](2.0.0.md) - [#673](https://github.com/bumble-tech/appyx/pull/673) – Fix canHandeBackPress typo - [#671](https://github.com/bumble-tech/appyx/issue/671) – Fix ui state saving issue - [#694](https://github.com/bumble-tech/appyx/pull/694) – Fix appyxComponent state saving issue +- [#697](https://github.com/bumble-tech/appyx/pull/697) – Fix missing resources in iOS sample app ### Enhancement diff --git a/demos/appyx-navigation/android/build.gradle.kts b/demos/appyx-navigation/android/build.gradle.kts deleted file mode 100644 index 599f3b276..000000000 --- a/demos/appyx-navigation/android/build.gradle.kts +++ /dev/null @@ -1,53 +0,0 @@ -plugins { - id("com.bumble.appyx.android.application") -} - -appyx { - namespace.set("com.bumble.appyx.demos.navigation") - - buildFeatures { - compose.set(true) - kotlinParcelize.set(true) - } -} - -android { - signingConfigs { - create("sampleConfig") { // debug is already created - storeFile = file("debug.keystore") - storePassword = "android" - keyAlias = "androiddebugkey" - keyPassword = "android" - } - } - buildTypes { - debug { - signingConfig = signingConfigs.findByName("sampleConfig") - } - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - // if we ever publish, we should create a more secure signingConfig - signingConfig = signingConfigs.findByName("sampleConfig") - } - } -} - -dependencies { - val composeBom = platform(libs.compose.bom) - - implementation(composeBom) - implementation(project(":demos:appyx-navigation:common")) - implementation(project(":appyx-components:standard:backstack:backstack")) - - implementation(libs.androidx.activity.compose) - implementation(libs.androidx.appcompat) - implementation(libs.androidx.core.splashscreen) - implementation(libs.androidx.lifecycle.java8) - implementation(libs.compose.material3) - implementation(libs.compose.ui.tooling) - implementation(libs.google.material) -} diff --git a/demos/appyx-navigation/android/detekt-baseline.xml b/demos/appyx-navigation/android/detekt-baseline.xml deleted file mode 100644 index a9c84a3ab..000000000 --- a/demos/appyx-navigation/android/detekt-baseline.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/demos/appyx-navigation/android/lint-baseline.xml b/demos/appyx-navigation/android/lint-baseline.xml deleted file mode 100644 index 27ab162a6..000000000 --- a/demos/appyx-navigation/android/lint-baseline.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/demos/appyx-navigation/android/lint.xml b/demos/appyx-navigation/android/lint.xml deleted file mode 100644 index 290a2e0bc..000000000 --- a/demos/appyx-navigation/android/lint.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/demos/appyx-navigation/common/build.gradle.kts b/demos/appyx-navigation/common/build.gradle.kts deleted file mode 100644 index 9e77e0a02..000000000 --- a/demos/appyx-navigation/common/build.gradle.kts +++ /dev/null @@ -1,124 +0,0 @@ -import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl - -plugins { - id("com.bumble.appyx.multiplatform") - id("org.jetbrains.compose") - id("com.android.library") - id("kotlin-parcelize") - id("com.google.devtools.ksp") -} - -appyx { - androidNamespace.set("com.bumble.appyx.demos.navigation.common") -} - -kotlin { - androidTarget { - publishLibraryVariants("release") - } - jvm("desktop") { - compilations.all { - kotlinOptions.jvmTarget = libs.versions.jvmTarget.get() - } - } - js(IR) { - // Adding moduleName as a workaround for this issue: https://youtrack.jetbrains.com/issue/KT-51942 - moduleName = "demo-appyx-navigation-common" - browser() - binaries.executable() - } - @OptIn(ExperimentalWasmDsl::class) - wasmJs { - // Adding moduleName as a workaround for this issue: https://youtrack.jetbrains.com/issue/KT-51942 - moduleName = "demo-appyx-navigation-common-wa" - browser { - // Refer to this Slack thread for more details: https://kotlinlang.slack.com/archives/CDFP59223/p1702977410505449?thread_ts=1702668737.674499&cid=CDFP59223 - testTask { - useKarma { - useChromeHeadless() - useConfigDirectory(project.projectDir.resolve("karma.config.d").resolve("wasm")) - } - } - } - binaries.executable() - } - iosX64() - iosArm64() - iosSimulatorArm64() - sourceSets { - val commonMain by getting { - dependencies { - api(compose.runtime) - api(compose.foundation) - api(compose.material3) - implementation(libs.kotlinx.serialization.json) - api(project(":appyx-interactions:appyx-interactions")) - api(project(":utils:utils-customisations")) - api(project(":utils:utils-material3")) - api(project(":utils:utils-multiplatform")) - api(project(":demos:image-loader:loader")) - implementation(project(":appyx-components:experimental:cards:cards")) - implementation(project(":appyx-components:experimental:promoter:promoter")) - implementation(project(":appyx-components:standard:backstack:backstack")) - implementation(project(":appyx-components:standard:spotlight:spotlight")) - } - } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - val androidMain by getting { - dependencies { - api(libs.androidx.appcompat) - api(libs.androidx.core) - implementation(libs.androidx.activity.compose) - implementation(libs.coil.compose) - } - } - val desktopMain by getting { - dependencies { - api(compose.preview) - } - } - val jsMain by getting { - dependencies { - implementation(npm("uuid", libs.versions.uuid.get())) - } - } - 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) - } - } -} - -android { - sourceSets["main"].resources.srcDirs("src/commonMain/resources") - buildFeatures { - compose = true - } - composeOptions { - kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get() - } -} - -compose.experimental { - web.application {} -} - -dependencies { - add("kspCommonMainMetadata", project(":ksp:appyx-processor")) - add("kspAndroid", project(":ksp:appyx-processor")) - add("kspDesktop", project(":ksp:appyx-processor")) - add("kspJs", project(":ksp:appyx-processor")) - add("kspWasmJs", project(":ksp:appyx-processor")) - add("kspIosArm64", project(":ksp:appyx-processor")) - add("kspIosX64", project(":ksp:appyx-processor")) - add("kspIosSimulatorArm64", project(":ksp:appyx-processor")) -} diff --git a/demos/appyx-navigation/common/karma.config.d/wasm/config.js b/demos/appyx-navigation/common/karma.config.d/wasm/config.js deleted file mode 100644 index 22429e585..000000000 --- a/demos/appyx-navigation/common/karma.config.d/wasm/config.js +++ /dev/null @@ -1,55 +0,0 @@ -// see https://kotlinlang.org/docs/js-project-setup.html#webpack-configuration-file -// This file provides karma.config.d configuration to run tests with k/wasm - -const path = require("path"); - -config.browserConsoleLogOptions.level = "debug"; - -const basePath = config.basePath; -const projectPath = path.resolve(basePath, "..", "..", "..", ".."); -const generatedAssetsPath = path.resolve(projectPath, "build", "karma-webpack-out") - -const debug = message => console.log(`[karma-config] ${message}`); - -debug(`karma basePath: ${basePath}`); -debug(`karma generatedAssetsPath: ${generatedAssetsPath}`); - -config.proxies["/"] = path.resolve(basePath, "kotlin"); - -config.files = [ - {pattern: path.resolve(generatedAssetsPath, "**/*"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.png"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.gif"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.ttf"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.txt"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.json"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.xml"), included: false, served: true, watched: false}, -].concat(config.files); - -function KarmaWebpackOutputFramework(config) { - // This controller is instantiated and set during the preprocessor phase. - const controller = config.__karmaWebpackController; - - // only if webpack has instantiated its controller - if (!controller) { - console.warn( - "Webpack has not instantiated controller yet.\n" + - "Check if you have enabled webpack preprocessor and framework before this framework" - ) - return - } - - config.files.push({ - pattern: `${controller.outputPath}/**/*`, - included: false, - served: true, - watched: false - }) -} - -const KarmaWebpackOutputPlugin = { - 'framework:webpack-output': ['factory', KarmaWebpackOutputFramework], -}; - -config.plugins.push(KarmaWebpackOutputPlugin); -config.frameworks.push("webpack-output"); \ No newline at end of file diff --git a/demos/appyx-navigation/common/src/androidMain/AndroidManifest.xml b/demos/appyx-navigation/common/src/androidMain/AndroidManifest.xml deleted file mode 100644 index 8072ee00d..000000000 --- a/demos/appyx-navigation/common/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/demos/appyx-navigation/common/src/jsMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt b/demos/appyx-navigation/common/src/jsMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt deleted file mode 100644 index fee6fd754..000000000 --- a/demos/appyx-navigation/common/src/jsMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.bumble.appyx.demos.navigation.platform - -actual fun getPlatformName(): String = "Web" diff --git a/demos/appyx-navigation/common/src/wasmJsMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt b/demos/appyx-navigation/common/src/wasmJsMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt deleted file mode 100644 index 32c3edfc2..000000000 --- a/demos/appyx-navigation/common/src/wasmJsMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.bumble.appyx.demos.navigation.ui - -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.layout.ContentScale -import com.bumble.appyx.imageloader.ResourceImage - -private const val EMBED_URL_PATH = "appyx/samples/documentation-appyx-navigation/" - -@Composable -actual fun EmbeddableResourceImage( - path: String, - contentDescription: String, - contentScale: ContentScale, - modifier: Modifier -) { - ResourceImage( - path = EMBED_URL_PATH + path, - fallbackUrl = path, - contentDescription = contentDescription, - contentScale = contentScale, - modifier = modifier, - ) -} diff --git a/demos/appyx-navigation/desktop/build.gradle.kts b/demos/appyx-navigation/desktop/build.gradle.kts deleted file mode 100644 index 461d1cea4..000000000 --- a/demos/appyx-navigation/desktop/build.gradle.kts +++ /dev/null @@ -1,45 +0,0 @@ -import org.jetbrains.compose.desktop.application.dsl.TargetFormat - -plugins { - id("com.bumble.appyx.multiplatform") - id("org.jetbrains.compose") -} - -kotlin { - jvm("desktop") { - compilations.all { - kotlinOptions.jvmTarget = libs.versions.jvmTarget.get() - } - } - sourceSets { - val desktopMain by getting { - dependencies { - implementation(compose.desktop.currentOs) - implementation(project(":demos:common")) - implementation(project(":demos:appyx-navigation:common")) - implementation(project(":appyx-interactions:appyx-interactions")) - implementation(project(":appyx-navigation:appyx-navigation")) - implementation(project(":appyx-components:standard:backstack:backstack")) - api(compose.runtime) - api(compose.foundation) - api(compose.material) - implementation(libs.kotlin.coroutines.core) - implementation(libs.kotlin.coroutines.swing) - } - } - } -} - -compose.desktop { - application { - mainClass = "com.bumble.appyx.demos.navigation.MainKt" - nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "AppyxNavigationDesktop" - packageVersion = properties["library.version"].toString().split("-")[0] - } - buildTypes.release.proguard { - configurationFiles.from(project.file("proguard-rules.pro")) - } - } -} diff --git a/demos/appyx-navigation/ios/build.gradle.kts b/demos/appyx-navigation/ios/build.gradle.kts deleted file mode 100644 index d29771487..000000000 --- a/demos/appyx-navigation/ios/build.gradle.kts +++ /dev/null @@ -1,65 +0,0 @@ -plugins { - id("com.bumble.appyx.multiplatform") - kotlin("multiplatform") - id("org.jetbrains.compose") - id("com.google.devtools.ksp") -} - -kotlin { - listOf( - iosX64(), - iosArm64(), - iosSimulatorArm64() - ).forEach { iosTarget -> - iosTarget.binaries.framework { - baseName = "ios" - isStatic = true - } - } - - sourceSets { - val iosX64Main by getting - val iosArm64Main by getting - val iosSimulatorArm64Main by getting - val iosMain by creating { - iosX64Main.dependsOn(this) - iosArm64Main.dependsOn(this) - iosSimulatorArm64Main.dependsOn(this) - dependencies { - implementation(project(":demos:appyx-navigation:common")) - api(compose.runtime) - api(compose.foundation) - api(compose.material) - implementation(libs.kotlin.coroutines.core) - } - } - } -} - -tasks.register("copyResources") { - // Dirs containing files we want to copy - from("../common/src/commonMain/resources") - - // Output for iOS resources - into("${layout.buildDirectory.get().asFile}/compose/ios/ios/compose-resources") - - include("**/*") -} - -tasks.named("compileKotlinIosArm64") { - dependsOn("copyResources") -} - -tasks.named("compileKotlinIosSimulatorArm64") { - dependsOn("copyResources") -} - -tasks.named("compileKotlinIosX64") { - dependsOn("copyResources") -} - -dependencies { - add("kspIosArm64", project(":ksp:appyx-processor")) - add("kspIosX64", project(":ksp:appyx-processor")) - add("kspIosSimulatorArm64", project(":ksp:appyx-processor")) -} diff --git a/demos/appyx-navigation/iosApp/iosApp.xcodeproj/project.pbxproj b/demos/appyx-navigation/iosApp/iosApp.xcodeproj/project.pbxproj index f66d191e0..29bb3c859 100644 --- a/demos/appyx-navigation/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/demos/appyx-navigation/iosApp/iosApp.xcodeproj/project.pbxproj @@ -172,7 +172,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/../../..\"\n./gradlew :demos:appyx-navigation:ios:embedAndSignAppleFrameworkForXcode\n"; + shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/../../..\"\n./gradlew :demos:appyx-navigation:mainApp:embedAndSignAppleFrameworkForXcode\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -316,7 +316,7 @@ DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; DEVELOPMENT_TEAM = "${TEAM_ID}"; ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../ios/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../mainApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; INFOPLIST_FILE = iosApp/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.3; LD_RUNPATH_SEARCH_PATHS = ( @@ -345,7 +345,7 @@ DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; DEVELOPMENT_TEAM = "${TEAM_ID}"; ENABLE_PREVIEWS = YES; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../ios/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../mainApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; INFOPLIST_FILE = iosApp/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.3; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/demos/appyx-navigation/common/.gitignore b/demos/appyx-navigation/mainApp/.gitignore similarity index 100% rename from demos/appyx-navigation/common/.gitignore rename to demos/appyx-navigation/mainApp/.gitignore diff --git a/demos/appyx-navigation/mainApp/build.gradle.kts b/demos/appyx-navigation/mainApp/build.gradle.kts new file mode 100644 index 000000000..58b818e16 --- /dev/null +++ b/demos/appyx-navigation/mainApp/build.gradle.kts @@ -0,0 +1,189 @@ +import org.jetbrains.compose.desktop.application.dsl.TargetFormat +import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl + +plugins { + id("com.bumble.appyx.multiplatform") + id("com.android.application") + id("org.jetbrains.compose") + id("com.google.devtools.ksp") + id("kotlin-parcelize") +} + +kotlin { + androidTarget { + compilations.all { + kotlinOptions { + jvmTarget = libs.versions.jvmTarget.get() + } + } + } + jvm("desktop") { + compilations.all { + kotlinOptions.jvmTarget = libs.versions.jvmTarget.get() + } + } + @OptIn(ExperimentalWasmDsl::class) + wasmJs { + // Adding moduleName as a workaround for this issue: https://youtrack.jetbrains.com/issue/KT-51942 + moduleName = "demo-appyx-navigation-main-wa" + browser() + binaries.executable() + } + listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64() + ).forEach { iosTarget -> + iosTarget.binaries.framework { + baseName = "ios" + isStatic = true + } + } + sourceSets { + commonMain.dependencies { + api(compose.foundation) + api(compose.material3) + api(compose.runtime) + api(project(":appyx-interactions:appyx-interactions")) + api(project(":demos:image-loader:loader")) + api(project(":utils:utils-customisations")) + api(project(":utils:utils-material3")) + api(project(":utils:utils-multiplatform")) + implementation(libs.kotlinx.serialization.json) + implementation(project(":appyx-components:experimental:cards:cards")) + implementation(project(":appyx-components:experimental:promoter:promoter")) + implementation(project(":appyx-components:standard:backstack:backstack")) + implementation(project(":appyx-components:standard:spotlight:spotlight")) + } + commonTest.dependencies { + implementation(kotlin("test")) + } + androidMain.dependencies { + val composeBom = project.dependencies.platform(libs.compose.bom) + + api(libs.androidx.core) + implementation(composeBom) + implementation(libs.androidx.activity.compose) + implementation(libs.androidx.appcompat) + implementation(libs.androidx.core.splashscreen) + implementation(libs.androidx.lifecycle.java8) + implementation(libs.coil.compose) + implementation(libs.compose.material3) + implementation(libs.compose.ui.tooling) + implementation(libs.google.material) + implementation(project(":appyx-components:standard:backstack:backstack")) + } + val desktopMain by getting { + dependencies { + api(compose.foundation) + api(compose.material) + api(compose.preview) + api(compose.runtime) + implementation(compose.desktop.currentOs) + implementation(libs.kotlin.coroutines.core) + implementation(libs.kotlin.coroutines.swing) + implementation(project(":appyx-components:standard:backstack:backstack")) + implementation(project(":appyx-interactions:appyx-interactions")) + implementation(project(":appyx-navigation:appyx-navigation")) + implementation(project(":demos:common")) + } + } + val wasmJsMain by getting { + dependencies { + implementation(project(":demos:common")) + implementation(project(":demos:mkdocs:common")) + implementation(project(":demos:mkdocs:appyx-components:common")) + } + } + val iosX64Main by getting + val iosArm64Main by getting + val iosSimulatorArm64Main by getting + val iosMain by creating { + iosX64Main.dependsOn(this) + iosArm64Main.dependsOn(this) + iosSimulatorArm64Main.dependsOn(this) + dependencies { + api(compose.runtime) + api(compose.foundation) + api(compose.material) + implementation(libs.kotlin.coroutines.core) + } + } + } +} + +android { + namespace = "com.bumble.appyx.demos.navigation.main" + compileSdk = libs.versions.androidCompileSdk.get().toInt() + + sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") + sourceSets["main"].res.srcDirs("src/androidMain/res") + sourceSets["main"].resources.srcDirs("src/commonMain/resources") + + defaultConfig { + minSdk = libs.versions.androidMinSdk.get().toInt() + targetSdk = libs.versions.androidTargetSdk.get().toInt() + versionCode = 1 + versionName = "1.0" + } + buildFeatures { + compose = true + } + composeOptions { + kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get() + } + signingConfigs { + create("sampleConfig") { // debug is already created + storeFile = file("debug.keystore") + storePassword = "android" + keyAlias = "androiddebugkey" + keyPassword = "android" + } + } + buildTypes { + debug { + signingConfig = signingConfigs.findByName("sampleConfig") + } + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + // if we ever publish, we should create a more secure signingConfig + signingConfig = signingConfigs.findByName("sampleConfig") + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } +} + +compose.desktop { + application { + mainClass = "com.bumble.appyx.demos.navigation.MainKt" + nativeDistributions { + targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) + packageName = "AppyxNavigationDesktop" + packageVersion = properties["library.version"].toString().split("-")[0] + } + buildTypes.release.proguard { + configurationFiles.from(project.file("proguard-rules.pro")) + } + } +} + +compose.experimental { + web.application {} +} + +dependencies { + add("kspCommonMainMetadata", project(":ksp:appyx-processor")) + add("kspAndroid", project(":ksp:appyx-processor")) + add("kspDesktop", project(":ksp:appyx-processor")) + add("kspWasmJs", project(":ksp:appyx-processor")) + add("kspIosArm64", project(":ksp:appyx-processor")) + add("kspIosX64", project(":ksp:appyx-processor")) + add("kspIosSimulatorArm64", project(":ksp:appyx-processor")) +} diff --git a/demos/appyx-navigation/android/debug.keystore b/demos/appyx-navigation/mainApp/debug.keystore similarity index 100% rename from demos/appyx-navigation/android/debug.keystore rename to demos/appyx-navigation/mainApp/debug.keystore diff --git a/demos/appyx-navigation/android/proguard-rules.pro b/demos/appyx-navigation/mainApp/proguard-rules.pro similarity index 100% rename from demos/appyx-navigation/android/proguard-rules.pro rename to demos/appyx-navigation/mainApp/proguard-rules.pro diff --git a/demos/appyx-navigation/android/src/main/AndroidManifest.xml b/demos/appyx-navigation/mainApp/src/androidMain/AndroidManifest.xml similarity index 93% rename from demos/appyx-navigation/android/src/main/AndroidManifest.xml rename to demos/appyx-navigation/mainApp/src/androidMain/AndroidManifest.xml index 2bab77e25..026b25732 100644 --- a/demos/appyx-navigation/android/src/main/AndroidManifest.xml +++ b/demos/appyx-navigation/mainApp/src/androidMain/AndroidManifest.xml @@ -8,7 +8,7 @@ android:supportsRtl="true" android:theme="@style/Theme.Appyx"> diff --git a/demos/appyx-navigation/android/src/main/kotlin/com/bumble/appyx/demos/navigation/MainActivity.kt b/demos/appyx-navigation/mainApp/src/androidMain/kotlin/com/bumble/appyx/demos/navigation/MainActivity.kt similarity index 100% rename from demos/appyx-navigation/android/src/main/kotlin/com/bumble/appyx/demos/navigation/MainActivity.kt rename to demos/appyx-navigation/mainApp/src/androidMain/kotlin/com/bumble/appyx/demos/navigation/MainActivity.kt diff --git a/demos/appyx-navigation/common/src/androidMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt b/demos/appyx-navigation/mainApp/src/androidMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt similarity index 100% rename from demos/appyx-navigation/common/src/androidMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt rename to demos/appyx-navigation/mainApp/src/androidMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt diff --git a/demos/appyx-navigation/common/src/androidMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt b/demos/appyx-navigation/mainApp/src/androidMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt similarity index 100% rename from demos/appyx-navigation/common/src/androidMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt rename to demos/appyx-navigation/mainApp/src/androidMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt diff --git a/demos/appyx-navigation/android/src/main/res/drawable/appyx.xml b/demos/appyx-navigation/mainApp/src/androidMain/res/drawable/appyx.xml similarity index 100% rename from demos/appyx-navigation/android/src/main/res/drawable/appyx.xml rename to demos/appyx-navigation/mainApp/src/androidMain/res/drawable/appyx.xml diff --git a/demos/appyx-navigation/android/src/main/res/values-night/themes.xml b/demos/appyx-navigation/mainApp/src/androidMain/res/values-night/themes.xml similarity index 100% rename from demos/appyx-navigation/android/src/main/res/values-night/themes.xml rename to demos/appyx-navigation/mainApp/src/androidMain/res/values-night/themes.xml diff --git a/demos/appyx-navigation/android/src/main/res/values/colors.xml b/demos/appyx-navigation/mainApp/src/androidMain/res/values/colors.xml similarity index 100% rename from demos/appyx-navigation/android/src/main/res/values/colors.xml rename to demos/appyx-navigation/mainApp/src/androidMain/res/values/colors.xml diff --git a/demos/appyx-navigation/android/src/main/res/values/strings.xml b/demos/appyx-navigation/mainApp/src/androidMain/res/values/strings.xml similarity index 100% rename from demos/appyx-navigation/android/src/main/res/values/strings.xml rename to demos/appyx-navigation/mainApp/src/androidMain/res/values/strings.xml diff --git a/demos/appyx-navigation/android/src/main/res/values/themes.xml b/demos/appyx-navigation/mainApp/src/androidMain/res/values/themes.xml similarity index 100% rename from demos/appyx-navigation/android/src/main/res/values/themes.xml rename to demos/appyx-navigation/mainApp/src/androidMain/res/values/themes.xml diff --git a/demos/appyx-navigation/common/src/commonMain/resources/appyx.png b/demos/appyx-navigation/mainApp/src/commonMain/composeResources/appyx.png similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/resources/appyx.png rename to demos/appyx-navigation/mainApp/src/commonMain/composeResources/appyx.png diff --git a/demos/appyx-navigation/common/src/commonMain/resources/cheesecake.png b/demos/appyx-navigation/mainApp/src/commonMain/composeResources/cheesecake.png similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/resources/cheesecake.png rename to demos/appyx-navigation/mainApp/src/commonMain/composeResources/cheesecake.png diff --git a/demos/appyx-navigation/common/src/commonMain/resources/donuts.png b/demos/appyx-navigation/mainApp/src/commonMain/composeResources/donuts.png similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/resources/donuts.png rename to demos/appyx-navigation/mainApp/src/commonMain/composeResources/donuts.png diff --git a/demos/appyx-navigation/common/src/commonMain/resources/fruit-cake.png b/demos/appyx-navigation/mainApp/src/commonMain/composeResources/fruit-cake.png similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/resources/fruit-cake.png rename to demos/appyx-navigation/mainApp/src/commonMain/composeResources/fruit-cake.png diff --git a/demos/appyx-navigation/common/src/commonMain/resources/macaron.png b/demos/appyx-navigation/mainApp/src/commonMain/composeResources/macaron.png similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/resources/macaron.png rename to demos/appyx-navigation/mainApp/src/commonMain/composeResources/macaron.png diff --git a/demos/appyx-navigation/common/src/commonMain/resources/mint-cupcake.png b/demos/appyx-navigation/mainApp/src/commonMain/composeResources/mint-cupcake.png similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/resources/mint-cupcake.png rename to demos/appyx-navigation/mainApp/src/commonMain/composeResources/mint-cupcake.png diff --git a/demos/appyx-navigation/common/src/commonMain/resources/red-cupcake.png b/demos/appyx-navigation/mainApp/src/commonMain/composeResources/red-cupcake.png similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/resources/red-cupcake.png rename to demos/appyx-navigation/mainApp/src/commonMain/composeResources/red-cupcake.png diff --git a/demos/appyx-navigation/common/src/commonMain/resources/tart.png b/demos/appyx-navigation/mainApp/src/commonMain/composeResources/tart.png similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/resources/tart.png rename to demos/appyx-navigation/mainApp/src/commonMain/composeResources/tart.png diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/androidx/compose/material/icons/filled/Cake.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/androidx/compose/material/icons/filled/Cake.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/androidx/compose/material/icons/filled/Cake.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/androidx/compose/material/icons/filled/Cake.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/androidx/compose/material/icons/outlined/Cake.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/androidx/compose/material/icons/outlined/Cake.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/androidx/compose/material/icons/outlined/Cake.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/androidx/compose/material/icons/outlined/Cake.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/Ext.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/Ext.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/Ext.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/Ext.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/ExitHeroModeStrategy.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/ExitHeroModeStrategy.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/ExitHeroModeStrategy.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/ExitHeroModeStrategy.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/SpotlightHero.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/SpotlightHero.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/SpotlightHero.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/SpotlightHero.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/SpotlightHeroModel.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/SpotlightHeroModel.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/SpotlightHeroModel.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/SpotlightHeroModel.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Activate.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Activate.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Activate.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Activate.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/First.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/First.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/First.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/First.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Last.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Last.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Last.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Last.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Next.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Next.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Next.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Next.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Previous.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Previous.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Previous.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/Previous.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/SetHeroMode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/SetHeroMode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/SetHeroMode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/SetHeroMode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/ToggleHeroMode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/ToggleHeroMode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/ToggleHeroMode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/operation/ToggleHeroMode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/SpotlightHeroGestures.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/SpotlightHeroGestures.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/SpotlightHeroGestures.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/SpotlightHeroGestures.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/SpotlightHeroVisualisation.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/SpotlightHeroVisualisation.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/SpotlightHeroVisualisation.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/SpotlightHeroVisualisation.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/default/SpotlightHeroDefaultVisualisation.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/default/SpotlightHeroDefaultVisualisation.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/default/SpotlightHeroDefaultVisualisation.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/default/SpotlightHeroDefaultVisualisation.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/default/TargetUiState.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/default/TargetUiState.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/default/TargetUiState.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/default/TargetUiState.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/property/HeroProgress.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/property/HeroProgress.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/property/HeroProgress.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/component/spotlighthero/visualisation/property/HeroProgress.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/navigator/Navigator.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/navigator/Navigator.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/navigator/Navigator.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/navigator/Navigator.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/Cake.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/Cake.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/Cake.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/Cake.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeBackdropNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeBackdropNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeBackdropNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeBackdropNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeDetailsSheet.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeDetailsSheet.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeDetailsSheet.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeDetailsSheet.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeImageNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeImageNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeImageNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeImageNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeListNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeListNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeListNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cakes/CakeListNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cart/Cart.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cart/Cart.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cart/Cart.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/cart/Cart.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/AddressNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/AddressNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/AddressNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/AddressNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CartContent.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CartContent.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CartContent.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CartContent.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CartItemsNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CartItemsNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CartItemsNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CartItemsNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CheckoutFormField.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CheckoutFormField.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CheckoutFormField.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CheckoutFormField.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CheckoutNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CheckoutNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CheckoutNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/CheckoutNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/Options.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/Options.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/Options.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/Options.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/OrderConfirmedNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/OrderConfirmedNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/OrderConfirmedNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/OrderConfirmedNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/PaymentNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/PaymentNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/PaymentNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/PaymentNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/ShippingDetailsNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/ShippingDetailsNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/ShippingDetailsNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/checkout/ShippingDetailsNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/home/HomeNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/home/HomeNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/home/HomeNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/home/HomeNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/loggedout/LoggedOutNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/loggedout/LoggedOutNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/loggedout/LoggedOutNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/loggedout/LoggedOutNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/main/MainNavItem.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/main/MainNavItem.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/main/MainNavItem.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/main/MainNavItem.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/main/MainNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/main/MainNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/main/MainNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/main/MainNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/profile/ProfileNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/profile/ProfileNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/profile/ProfileNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/profile/ProfileNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/profile/User.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/profile/User.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/profile/User.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/profile/User.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/root/RootNode.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/root/RootNode.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/root/RootNode.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/node/root/RootNode.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/platform/Platform.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/platform/Platform.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/platform/Platform.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/platform/Platform.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Color.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Color.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Color.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Color.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/MaterialColors.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/MaterialColors.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/MaterialColors.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/MaterialColors.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/PlaceholderScreen.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/PlaceholderScreen.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/PlaceholderScreen.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/PlaceholderScreen.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Shape.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Shape.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Shape.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Shape.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/TextButton.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/TextButton.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/TextButton.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/TextButton.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Theme.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Theme.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Theme.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Theme.kt diff --git a/demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Type.kt b/demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Type.kt similarity index 100% rename from demos/appyx-navigation/common/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Type.kt rename to demos/appyx-navigation/mainApp/src/commonMain/kotlin/com/bumble/appyx/demos/navigation/ui/Type.kt diff --git a/demos/appyx-navigation/desktop/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/Main.kt b/demos/appyx-navigation/mainApp/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/Main.kt similarity index 98% rename from demos/appyx-navigation/desktop/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/Main.kt rename to demos/appyx-navigation/mainApp/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/Main.kt index fb5eb055a..3c53a4c4a 100644 --- a/demos/appyx-navigation/desktop/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/Main.kt +++ b/demos/appyx-navigation/mainApp/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/Main.kt @@ -30,7 +30,7 @@ import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.launch sealed class Events { - object OnBackPressed : Events() + data object OnBackPressed : Events() } fun main() = application { diff --git a/demos/appyx-navigation/common/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt b/demos/appyx-navigation/mainApp/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt similarity index 100% rename from demos/appyx-navigation/common/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt rename to demos/appyx-navigation/mainApp/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt diff --git a/demos/appyx-navigation/common/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt b/demos/appyx-navigation/mainApp/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt similarity index 100% rename from demos/appyx-navigation/common/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt rename to demos/appyx-navigation/mainApp/src/desktopMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt diff --git a/demos/appyx-navigation/common/src/iosMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt b/demos/appyx-navigation/mainApp/src/iosMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt similarity index 100% rename from demos/appyx-navigation/common/src/iosMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt rename to demos/appyx-navigation/mainApp/src/iosMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt diff --git a/demos/appyx-navigation/common/src/iosMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt b/demos/appyx-navigation/mainApp/src/iosMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt similarity index 100% rename from demos/appyx-navigation/common/src/iosMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt rename to demos/appyx-navigation/mainApp/src/iosMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt diff --git a/demos/appyx-navigation/ios/src/iosMain/kotlin/main.ios.kt b/demos/appyx-navigation/mainApp/src/iosMain/kotlin/main.ios.kt similarity index 100% rename from demos/appyx-navigation/ios/src/iosMain/kotlin/main.ios.kt rename to demos/appyx-navigation/mainApp/src/iosMain/kotlin/main.ios.kt diff --git a/demos/appyx-navigation/common/src/wasmJsMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt b/demos/appyx-navigation/mainApp/src/wasmJsMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt similarity index 100% rename from demos/appyx-navigation/common/src/wasmJsMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt rename to demos/appyx-navigation/mainApp/src/wasmJsMain/kotlin/com/bumble/appyx/demos/navigation/platform/PlatformName.kt diff --git a/demos/appyx-navigation/common/src/jsMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt b/demos/appyx-navigation/mainApp/src/wasmJsMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt similarity index 100% rename from demos/appyx-navigation/common/src/jsMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt rename to demos/appyx-navigation/mainApp/src/wasmJsMain/kotlin/com/bumble/appyx/demos/navigation/ui/EmbeddableResourceImage.kt diff --git a/demos/appyx-navigation/web/src/jsMain/kotlin/com/bumble/appyx/navigation/Main.kt b/demos/appyx-navigation/mainApp/src/wasmJsMain/kotlin/com/bumble/appyx/navigation/Main.kt similarity index 100% rename from demos/appyx-navigation/web/src/jsMain/kotlin/com/bumble/appyx/navigation/Main.kt rename to demos/appyx-navigation/mainApp/src/wasmJsMain/kotlin/com/bumble/appyx/navigation/Main.kt diff --git a/demos/appyx-navigation/web/src/jsMain/kotlin/com/bumble/appyx/navigation/WebTypography.kt b/demos/appyx-navigation/mainApp/src/wasmJsMain/kotlin/com/bumble/appyx/navigation/WebTypography.kt similarity index 100% rename from demos/appyx-navigation/web/src/jsMain/kotlin/com/bumble/appyx/navigation/WebTypography.kt rename to demos/appyx-navigation/mainApp/src/wasmJsMain/kotlin/com/bumble/appyx/navigation/WebTypography.kt diff --git a/demos/appyx-navigation/web/src/jsMain/resources/index.html b/demos/appyx-navigation/mainApp/src/wasmJsMain/resources/index.html similarity index 90% rename from demos/appyx-navigation/web/src/jsMain/resources/index.html rename to demos/appyx-navigation/mainApp/src/wasmJsMain/resources/index.html index 07c3ca9bc..ea21e5530 100644 --- a/demos/appyx-navigation/web/src/jsMain/resources/index.html +++ b/demos/appyx-navigation/mainApp/src/wasmJsMain/resources/index.html @@ -10,6 +10,6 @@
- + diff --git a/demos/appyx-navigation/web/src/jsMain/resources/styles.css b/demos/appyx-navigation/mainApp/src/wasmJsMain/resources/styles.css similarity index 100% rename from demos/appyx-navigation/web/src/jsMain/resources/styles.css rename to demos/appyx-navigation/mainApp/src/wasmJsMain/resources/styles.css diff --git a/demos/appyx-navigation/web/build.gradle.kts b/demos/appyx-navigation/web/build.gradle.kts deleted file mode 100644 index 073df2d2d..000000000 --- a/demos/appyx-navigation/web/build.gradle.kts +++ /dev/null @@ -1,92 +0,0 @@ -import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl - -plugins { - id("com.bumble.appyx.multiplatform") - id("org.jetbrains.compose") - id("com.google.devtools.ksp") -} - -kotlin { - js(IR) { - moduleName = "appyx-demos-navigation-web" - browser() - binaries.executable() - } - @OptIn(ExperimentalWasmDsl::class) - wasmJs { - moduleName = "appyx-demos-navigation-web-wa" - browser { - // Refer to this Slack thread for more details: https://kotlinlang.slack.com/archives/CDFP59223/p1702977410505449?thread_ts=1702668737.674499&cid=CDFP59223 - testTask { - useKarma { - useChromeHeadless() - useConfigDirectory(project.projectDir.resolve("karma.config.d").resolve("wasm")) - } - } - } - binaries.executable() - } - sourceSets { - val commonMain by getting { - dependencies { - implementation(project(":demos:common")) - implementation(project(":demos:appyx-navigation:common")) - implementation(project(":appyx-interactions:appyx-interactions")) - implementation(project(":appyx-navigation:appyx-navigation")) - implementation(project(":appyx-components:standard:backstack:backstack")) - implementation(project(":demos:mkdocs:appyx-components:common")) - implementation(project(":demos:mkdocs:common")) - api(compose.runtime) - api(compose.foundation) - api(compose.material) - implementation(libs.kotlin.coroutines.core) - } - } - } -} - -compose.experimental { - web.application {} -} - -dependencies { - add("kspCommonMainMetadata", project(":ksp:appyx-processor")) - add("kspJs", project(":ksp:appyx-processor")) - add("kspWasmJs", project(":ksp:appyx-processor")) -} - -tasks.register("jsCopyResources") { - // Dirs containing files we want to copy - from("../common/src/commonMain/resources") - - // Output for web resources - into("${layout.buildDirectory.get().asFile}/processedResources/js/main") - - include("**/*") -} - -tasks.named("jsBrowserProductionExecutableDistributeResources") { - dependsOn("jsCopyResources") -} - -tasks.named("jsMainClasses") { - dependsOn("jsCopyResources") -} - -tasks.register("wasmJsCopyResources") { - // Dirs containing files we want to copy - from("../common/src/commonMain/resources") - - // Output for web resources - into("${layout.buildDirectory.get().asFile}/processedResources/wasmJs/main") - - include("**/*") -} - -tasks.named("wasmJsBrowserProductionExecutableDistributeResources") { - dependsOn("wasmJsCopyResources") -} - -tasks.named("wasmJsMainClasses") { - dependsOn("wasmJsCopyResources") -} \ No newline at end of file diff --git a/demos/appyx-navigation/web/karma.config.d/wasm/config.js b/demos/appyx-navigation/web/karma.config.d/wasm/config.js deleted file mode 100644 index 22429e585..000000000 --- a/demos/appyx-navigation/web/karma.config.d/wasm/config.js +++ /dev/null @@ -1,55 +0,0 @@ -// see https://kotlinlang.org/docs/js-project-setup.html#webpack-configuration-file -// This file provides karma.config.d configuration to run tests with k/wasm - -const path = require("path"); - -config.browserConsoleLogOptions.level = "debug"; - -const basePath = config.basePath; -const projectPath = path.resolve(basePath, "..", "..", "..", ".."); -const generatedAssetsPath = path.resolve(projectPath, "build", "karma-webpack-out") - -const debug = message => console.log(`[karma-config] ${message}`); - -debug(`karma basePath: ${basePath}`); -debug(`karma generatedAssetsPath: ${generatedAssetsPath}`); - -config.proxies["/"] = path.resolve(basePath, "kotlin"); - -config.files = [ - {pattern: path.resolve(generatedAssetsPath, "**/*"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.png"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.gif"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.ttf"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.txt"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.json"), included: false, served: true, watched: false}, - {pattern: path.resolve(basePath, "kotlin", "**/*.xml"), included: false, served: true, watched: false}, -].concat(config.files); - -function KarmaWebpackOutputFramework(config) { - // This controller is instantiated and set during the preprocessor phase. - const controller = config.__karmaWebpackController; - - // only if webpack has instantiated its controller - if (!controller) { - console.warn( - "Webpack has not instantiated controller yet.\n" + - "Check if you have enabled webpack preprocessor and framework before this framework" - ) - return - } - - config.files.push({ - pattern: `${controller.outputPath}/**/*`, - included: false, - served: true, - watched: false - }) -} - -const KarmaWebpackOutputPlugin = { - 'framework:webpack-output': ['factory', KarmaWebpackOutputFramework], -}; - -config.plugins.push(KarmaWebpackOutputPlugin); -config.frameworks.push("webpack-output"); \ No newline at end of file diff --git a/demos/appyx-navigation/web/src/wasmJsMain/kotlin/com/bumble/appyx/navigation/Main.kt b/demos/appyx-navigation/web/src/wasmJsMain/kotlin/com/bumble/appyx/navigation/Main.kt deleted file mode 100644 index e43f5ab47..000000000 --- a/demos/appyx-navigation/web/src/wasmJsMain/kotlin/com/bumble/appyx/navigation/Main.kt +++ /dev/null @@ -1,138 +0,0 @@ -package com.bumble.appyx.navigation - -import androidx.compose.foundation.border -import androidx.compose.foundation.focusable -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.aspectRatio -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.ExperimentalComposeUiApi -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.focus.FocusRequester -import androidx.compose.ui.focus.focusRequester -import androidx.compose.ui.focus.onFocusChanged -import androidx.compose.ui.input.key.Key -import androidx.compose.ui.input.key.KeyEvent -import androidx.compose.ui.input.key.KeyEventType -import androidx.compose.ui.input.key.key -import androidx.compose.ui.input.key.onKeyEvent -import androidx.compose.ui.input.key.type -import androidx.compose.ui.layout.onSizeChanged -import androidx.compose.ui.unit.dp -import androidx.compose.ui.window.CanvasBasedWindow -import com.bumble.appyx.demos.appyxSample -import com.bumble.appyx.demos.common.color_primary -import com.bumble.appyx.demos.navigation.navigator.LocalNavigator -import com.bumble.appyx.demos.navigation.navigator.Navigator -import com.bumble.appyx.demos.navigation.node.root.RootNode -import com.bumble.appyx.demos.navigation.ui.AppyxSampleAppTheme -import com.bumble.appyx.navigation.integration.ScreenSize -import com.bumble.appyx.navigation.integration.WebNodeHost -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.SupervisorJob -import kotlinx.coroutines.channels.Channel -import kotlinx.coroutines.flow.receiveAsFlow -import kotlinx.coroutines.launch - -@OptIn(ExperimentalComposeUiApi::class) -fun main() { - val events: Channel = Channel() - val navigator = Navigator() - appyxSample { - CanvasBasedWindow("Appyx navigation demo") { - CakeApp(events, navigator) - } - } -} - -private val containerShape = RoundedCornerShape(8) - -@Composable -private fun CakeApp(events: Channel, navigator: Navigator) { - AppyxSampleAppTheme(darkTheme = true, themeTypography = webTypography) { - val requester = remember { FocusRequester() } - var hasFocus by remember { mutableStateOf(false) } - - var screenSize by remember { mutableStateOf(ScreenSize(0.dp, 0.dp)) } - val eventScope = remember { CoroutineScope(SupervisorJob() + Dispatchers.Main) } - - Surface( - modifier = Modifier - .fillMaxSize() - .onSizeChanged { screenSize = ScreenSize(it.width.dp, it.height.dp) } - .onKeyEvent { - onKeyEvent(it, events, eventScope) - } - .focusRequester(requester) - .focusable() - .onFocusChanged { hasFocus = it.hasFocus }, - color = MaterialTheme.colorScheme.background, - ) { - CompositionLocalProvider(LocalNavigator provides navigator) { - BlackContainer { - WebNodeHost( - screenSize = screenSize, - onBackPressedEvents = events.receiveAsFlow(), - ) { nodeContext -> - RootNode( - nodeContext = nodeContext, - plugins = listOf(navigator) - ) - } - } - } - } - - if (!hasFocus) { - LaunchedEffect(Unit) { - requester.requestFocus() - } - } - } -} - -@Composable -private fun BlackContainer(content: @Composable () -> Unit) { - Box( - modifier = Modifier - .fillMaxSize() - .padding(16.dp), - contentAlignment = Alignment.Center - ) { - Box( - modifier = Modifier - .aspectRatio(0.56f) - .border(4.dp, color_primary, containerShape) - .clip(containerShape) - ) { - content() - } - } -} - -private fun onKeyEvent( - keyEvent: KeyEvent, - events: Channel, - coroutineScope: CoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Main), -): Boolean = - when { - keyEvent.type == KeyEventType.KeyUp && keyEvent.key == Key.Backspace -> { - coroutineScope.launch { events.send(Unit) } - true - } - - else -> false - } diff --git a/demos/appyx-navigation/web/src/wasmJsMain/kotlin/com/bumble/appyx/navigation/WebTypography.kt b/demos/appyx-navigation/web/src/wasmJsMain/kotlin/com/bumble/appyx/navigation/WebTypography.kt deleted file mode 100644 index 833b55cac..000000000 --- a/demos/appyx-navigation/web/src/wasmJsMain/kotlin/com/bumble/appyx/navigation/WebTypography.kt +++ /dev/null @@ -1,44 +0,0 @@ -package com.bumble.appyx.navigation - -import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.unit.sp -import com.bumble.appyx.demos.navigation.ui.typography - -internal val webTypography = typography.copy( - bodySmall = typography.bodySmall.copy( - fontSize = 8.sp, - fontFamily = FontFamily.SansSerif, - ), - bodyMedium = typography.bodyMedium.copy( - fontSize = 10.sp, - fontFamily = FontFamily.SansSerif, - ), - bodyLarge = typography.bodyLarge.copy( - fontSize = 12.sp, - fontFamily = FontFamily.SansSerif, - ), - titleSmall = typography.titleSmall.copy( - fontSize = 8.sp, - fontFamily = FontFamily.SansSerif, - ), - titleMedium = typography.titleMedium.copy( - fontSize = 10.sp, - fontFamily = FontFamily.SansSerif, - ), - titleLarge = typography.titleLarge.copy( - fontSize = 12.sp, - fontFamily = FontFamily.SansSerif, - ), - headlineSmall = typography.headlineSmall.copy( - fontSize = 14.sp, - fontFamily = FontFamily.SansSerif, - ), - headlineMedium = typography.headlineMedium.copy( - fontSize = 16.sp, - fontFamily = FontFamily.SansSerif, - ), - headlineLarge = typography.headlineLarge.copy( - fontSize = 18.sp, - fontFamily = FontFamily.SansSerif, - ), -) diff --git a/demos/appyx-navigation/web/src/wasmJsMain/resources/index.html b/demos/appyx-navigation/web/src/wasmJsMain/resources/index.html deleted file mode 100644 index 07c3ca9bc..000000000 --- a/demos/appyx-navigation/web/src/wasmJsMain/resources/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - Navigation Demo - - - - -
- -
- - - diff --git a/demos/appyx-navigation/web/src/wasmJsMain/resources/styles.css b/demos/appyx-navigation/web/src/wasmJsMain/resources/styles.css deleted file mode 100644 index 8655f2e76..000000000 --- a/demos/appyx-navigation/web/src/wasmJsMain/resources/styles.css +++ /dev/null @@ -1,12 +0,0 @@ -#root { - width: 100%; - height: 100vh; -} - -body { - margin: 0; -} - -#root > .compose-web-column > div { - position: relative; -} diff --git a/documentation/index.md b/documentation/index.md index 2ac665204..0981182af 100644 --- a/documentation/index.md +++ b/documentation/index.md @@ -41,8 +41,8 @@ Appyx is a collection of libraries: {{ compose_mpp_sample( - project_output_directory="demos/appyx-navigation/web/build/dist/wasmJs/productionExecutable", - compile_task=":demos:appyx-navigation:web:wasmJsBrowserDistribution", + project_output_directory="demos/appyx-navigation/mainApp/build/dist/wasmJs/productionExecutable", + compile_task=":demos:appyx-navigation:mainApp:wasmJsBrowserDistribution", width=512, height=500, target_directory="samples/documentation-appyx-navigation", diff --git a/documentation/navigation/index.md b/documentation/navigation/index.md index 6805b1437..d67b3719e 100644 --- a/documentation/navigation/index.md +++ b/documentation/navigation/index.md @@ -16,8 +16,8 @@ title: Appyx Navigation – Overview {{ compose_mpp_sample( - project_output_directory="demos/appyx-navigation/web/build/dist/wasmJs/productionExecutable", - compile_task=":demos:appyx-navigation:web:wasmJsBrowserDistribution", + project_output_directory="demos/appyx-navigation/mainApp/build/dist/wasmJs/productionExecutable", + compile_task=":demos:appyx-navigation:mainApp:wasmJsBrowserDistribution", width=512, height=500, target_directory="samples/documentation-appyx-navigation", diff --git a/documentation/navigation/multiplatform.md b/documentation/navigation/multiplatform.md index 4af560a33..0364a1a2c 100644 --- a/documentation/navigation/multiplatform.md +++ b/documentation/navigation/multiplatform.md @@ -316,27 +316,26 @@ Otherwise, KDoctor will highlight which parts of your setup still need to be con Open the project in Android Studio and switch the view from **Android** to **Project** to see all the files and targets belonging to the project. The :demos module contains the sample target [appyx-navigation](https://bumble-tech.github.io/appyx/navigation/). -This module follows the standard compose multiplatform project structure: +This module follows the latest compose multiplatform project structure, with a `mainApp` module targeting all available platforms (Android, Desktop, iOS and Web). +There is also a companion module named `iosApp` with the needed glue code for iOS. There are the targets and purposes: -### common +### commonMain -This is a Kotlin module that contains the logic common for Android, Desktop, iOS and web applications, that is, the code you share between platforms. +This Kotlin module contains the logic common for Android, Desktop, iOS and web applications, that is, the code you share between platforms. -### android +### androidMain -This is a Kotlin module that builds into an Android application. It uses Gradle as the build system. -The `android` module depends on and uses the `common` module as a regular Android library. +This is a Kotlin module that builds into an Android application. -### desktop +### desktopMain This module builds into a Desktop application. -### ios +### iosMain This is an Xcode project that builds into an iOS application. -The `:demos:appyx-navigation` module depends on and uses the `:demos:appyx-navigation:common` module as a CocoaPods dependency. -### web +### wasmJsMain This module builds into a Web app. diff --git a/documentation/navigation/sample-app.md b/documentation/navigation/sample-app.md index 7f4fd88fb..60b604548 100644 --- a/documentation/navigation/sample-app.md +++ b/documentation/navigation/sample-app.md @@ -6,8 +6,8 @@ title: Appyx Navigation – Sample app {{ compose_mpp_sample( - project_output_directory="demos/appyx-navigation/web/build/dist/wasmJs/productionExecutable", - compile_task=":demos:appyx-navigation:web:wasmJsBrowserDistribution", + project_output_directory="demos/appyx-navigation/mainApp/build/dist/wasmJs/productionExecutable", + compile_task=":demos:appyx-navigation:mainApp:wasmJsBrowserDistribution", width=512, height=500, target_directory="samples/documentation-appyx-navigation", diff --git a/settings.gradle.kts b/settings.gradle.kts index 9eb7d1353..1aa5c83bf 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -49,11 +49,7 @@ include( ":demos:appyx-interactions:desktop", ":demos:appyx-interactions:ios", ":demos:appyx-interactions:web", - ":demos:appyx-navigation:common", - ":demos:appyx-navigation:android", - ":demos:appyx-navigation:desktop", - ":demos:appyx-navigation:ios", - ":demos:appyx-navigation:web", + ":demos:appyx-navigation:mainApp", ":demos:common", ":demos:image-loader:common", ":demos:navigation-compose",