From 96a0f87336ce58ae824a8cdd39c475a55bad6087 Mon Sep 17 00:00:00 2001 From: jay-tux Date: Sun, 4 May 2025 13:39:25 +0200 Subject: [PATCH] Initial --- .gitignore | 18 + README.md | 21 + api/build.gradle.kts | 59 +++ api/src/main/kotlin/Main.kt | 1 + build.gradle.kts | 12 + composeApp/build.gradle.kts | 120 ++++++ .../src/androidMain/AndroidManifest.xml | 23 + .../com/jaytux/multiverse/ui/MainActivity.kt | 23 + .../jaytux/multiverse/ui/Platform.android.kt | 9 + .../drawable-v24/ic_launcher_foreground.xml | 30 ++ .../res/drawable/ic_launcher_background.xml | 170 ++++++++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3593 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5339 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2636 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3388 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4926 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7472 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7909 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 11873 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10652 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 16570 bytes .../src/androidMain/res/values/strings.xml | 3 + .../drawable/compose-multiplatform.xml | 36 ++ .../kotlin/com/jaytux/multiverse/ui/App.kt | 37 ++ .../com/jaytux/multiverse/ui/Greeting.kt | 9 + .../com/jaytux/multiverse/ui/Platform.kt | 7 + .../com/jaytux/multiverse/ui/Platform.jvm.kt | 7 + .../kotlin/com/jaytux/multiverse/ui/main.kt | 13 + .../multiverse/ui/MainViewController.kt | 5 + .../com/jaytux/multiverse/ui/Platform.ios.kt | 9 + .../jaytux/multiverse/ui/Platform.wasmJs.kt | 7 + .../kotlin/com/jaytux/multiverse/ui/main.kt | 12 + .../src/wasmJsMain/resources/index.html | 12 + .../src/wasmJsMain/resources/styles.css | 7 + gradle.properties | 10 + gradle/libs.versions.toml | 79 ++++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43504 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 252 +++++++++++ gradlew.bat | 94 +++++ iosApp/Configuration/Config.xcconfig | 3 + iosApp/iosApp.xcodeproj/project.pbxproj | 393 ++++++++++++++++++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 14 + .../AppIcon.appiconset/app-icon-1024.png | Bin 0 -> 67285 bytes iosApp/iosApp/Assets.xcassets/Contents.json | 6 + iosApp/iosApp/ContentView.swift | 21 + iosApp/iosApp/Info.plist | 50 +++ .../Preview Assets.xcassets/Contents.json | 6 + iosApp/iosApp/iOSApp.swift | 10 + settings.gradle.kts | 32 ++ 53 files changed, 1648 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 api/build.gradle.kts create mode 100644 api/src/main/kotlin/Main.kt create mode 100644 build.gradle.kts create mode 100644 composeApp/build.gradle.kts create mode 100644 composeApp/src/androidMain/AndroidManifest.xml create mode 100644 composeApp/src/androidMain/kotlin/com/jaytux/multiverse/ui/MainActivity.kt create mode 100644 composeApp/src/androidMain/kotlin/com/jaytux/multiverse/ui/Platform.android.kt create mode 100644 composeApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 composeApp/src/androidMain/res/drawable/ic_launcher_background.xml create mode 100644 composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png create mode 100644 composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png create mode 100644 composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png create mode 100644 composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 composeApp/src/androidMain/res/values/strings.xml create mode 100644 composeApp/src/commonMain/composeResources/drawable/compose-multiplatform.xml create mode 100644 composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/App.kt create mode 100644 composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/Greeting.kt create mode 100644 composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/Platform.kt create mode 100644 composeApp/src/desktopMain/kotlin/com/jaytux/multiverse/ui/Platform.jvm.kt create mode 100644 composeApp/src/desktopMain/kotlin/com/jaytux/multiverse/ui/main.kt create mode 100644 composeApp/src/iosMain/kotlin/com/jaytux/multiverse/ui/MainViewController.kt create mode 100644 composeApp/src/iosMain/kotlin/com/jaytux/multiverse/ui/Platform.ios.kt create mode 100644 composeApp/src/wasmJsMain/kotlin/com/jaytux/multiverse/ui/Platform.wasmJs.kt create mode 100644 composeApp/src/wasmJsMain/kotlin/com/jaytux/multiverse/ui/main.kt create mode 100644 composeApp/src/wasmJsMain/resources/index.html create mode 100644 composeApp/src/wasmJsMain/resources/styles.css create mode 100644 gradle.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 iosApp/Configuration/Config.xcconfig create mode 100644 iosApp/iosApp.xcodeproj/project.pbxproj create mode 100644 iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png create mode 100644 iosApp/iosApp/Assets.xcassets/Contents.json create mode 100644 iosApp/iosApp/ContentView.swift create mode 100644 iosApp/iosApp/Info.plist create mode 100644 iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 iosApp/iosApp/iOSApp.swift create mode 100644 settings.gradle.kts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7d9c0e4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +*.iml +.kotlin +.gradle +**/build/ +xcuserdata +!src/**/build/ +local.properties +.idea +.DS_Store +captures +.externalNativeBuild +.cxx +*.xcodeproj/* +!*.xcodeproj/project.pbxproj +!*.xcodeproj/xcshareddata/ +!*.xcodeproj/project.xcworkspace/ +!*.xcworkspace/contents.xcworkspacedata +**/xcshareddata/WorkspaceSettings.xcsettings diff --git a/README.md b/README.md new file mode 100644 index 0000000..cc1fff9 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +This is a Kotlin Multiplatform project targeting Android, iOS, Web, Desktop. + +* `/composeApp` is for code that will be shared across your Compose Multiplatform applications. + It contains several subfolders: + - `commonMain` is for code that’s common for all targets. + - Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name. + For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app, + `iosMain` would be the right folder for such calls. + +* `/iosApp` contains iOS applications. Even if you’re sharing your UI with Compose Multiplatform, + you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project. + + +Learn more about [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html), +[Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform/#compose-multiplatform), +[Kotlin/Wasm](https://kotl.in/wasm/)… + +We would appreciate your feedback on Compose/Web and Kotlin/Wasm in the public Slack channel [#compose-web](https://slack-chats.kotlinlang.org/c/compose-web). +If you face any issues, please report them on [GitHub](https://github.com/JetBrains/compose-multiplatform/issues). + +You can open the web application by running the `:composeApp:wasmJsBrowserDevelopmentRun` Gradle task. \ No newline at end of file diff --git a/api/build.gradle.kts b/api/build.gradle.kts new file mode 100644 index 0000000..3b2d57e --- /dev/null +++ b/api/build.gradle.kts @@ -0,0 +1,59 @@ +plugins { + alias(libs.plugins.jvm) + alias(libs.plugins.ktor) + alias(libs.plugins.serialization) +} + +group = "com.jaytux.simd" +version = "1.0-SNAPSHOT" + +repositories { + mavenCentral() +} + +dependencies { + implementation(libs.exposed.core) + implementation(libs.exposed.dao) + implementation(libs.exposed.jdbc) + + implementation(libs.ktor.client.core) + implementation(libs.ktor.client.cio) + implementation(libs.ktor.client.logging) + + implementation(libs.ktor.server.content.negotiation) + implementation(libs.ktor.server.core) + implementation(libs.ktor.server.openapi) + implementation(libs.ktor.server.auto.head.response) + implementation(libs.ktor.server.netty) + implementation(libs.ktor.server.config.yaml) + implementation(libs.ktor.server.test.host) + + implementation(libs.ktor.serialization.kotlinx.json) + + implementation(libs.dotenv) + implementation(libs.json) + implementation(libs.kotlinx.datetime) + implementation(libs.kotlinx.serialization.json) + implementation(libs.ksoup) + implementation(libs.logback.classic) + implementation(libs.mariadb) + implementation(libs.sqlite) +} + +tasks.test { + useJUnitPlatform() +} +kotlin { + jvmToolchain(21) +} + +application { + mainClass.set("com.jaytux.simd.MainKt") +} + +tasks.withType { + manifest { + attributes["Main-Class"] = application.mainClass + } + duplicatesStrategy = DuplicatesStrategy.EXCLUDE +} \ No newline at end of file diff --git a/api/src/main/kotlin/Main.kt b/api/src/main/kotlin/Main.kt new file mode 100644 index 0000000..7de943c --- /dev/null +++ b/api/src/main/kotlin/Main.kt @@ -0,0 +1 @@ +fun main(args: Array) {} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..1725ca3 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,12 @@ +plugins { + // this is necessary to avoid the plugins to be loaded multiple times + // in each subproject's classloader + alias(libs.plugins.androidApplication) apply false + alias(libs.plugins.androidLibrary) apply false + alias(libs.plugins.composeMultiplatform) apply false + alias(libs.plugins.composeCompiler) apply false + alias(libs.plugins.kotlinMultiplatform) apply false + alias(libs.plugins.jvm) apply false + alias(libs.plugins.ktor) apply false + alias(libs.plugins.serialization) apply false +} \ No newline at end of file diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts new file mode 100644 index 0000000..4c0bb09 --- /dev/null +++ b/composeApp/build.gradle.kts @@ -0,0 +1,120 @@ +import org.jetbrains.compose.desktop.application.dsl.TargetFormat +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig + +plugins { + alias(libs.plugins.kotlinMultiplatform) + alias(libs.plugins.androidApplication) + alias(libs.plugins.composeMultiplatform) + alias(libs.plugins.composeCompiler) +} + +kotlin { + androidTarget { + @OptIn(ExperimentalKotlinGradlePluginApi::class) + compilerOptions { + jvmTarget.set(JvmTarget.JVM_11) + } + } + + listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64() + ).forEach { iosTarget -> + iosTarget.binaries.framework { + baseName = "ComposeApp" + isStatic = true + } + } + + jvm("desktop") + + @OptIn(ExperimentalWasmDsl::class) + wasmJs { + moduleName = "composeApp" + browser { + val rootDirPath = project.rootDir.path + val projectDirPath = project.projectDir.path + commonWebpackConfig { + outputFileName = "composeApp.js" + devServer = (devServer ?: KotlinWebpackConfig.DevServer()).apply { + static = (static ?: mutableListOf()).apply { + // Serve sources to debug inside browser + add(rootDirPath) + add(projectDirPath) + } + } + } + } + binaries.executable() + } + + sourceSets { + val desktopMain by getting + + androidMain.dependencies { + implementation(compose.preview) + implementation(libs.androidx.activity.compose) + } + commonMain.dependencies { + implementation(compose.runtime) + implementation(compose.foundation) + implementation(compose.material) + implementation(compose.ui) + implementation(compose.components.resources) + implementation(compose.components.uiToolingPreview) + implementation(libs.androidx.lifecycle.viewmodel) + implementation(libs.androidx.lifecycle.runtime.compose) + } + desktopMain.dependencies { + implementation(compose.desktop.currentOs) + implementation(libs.kotlinx.coroutines.swing) + } + } +} + +android { + namespace = "com.jaytux.multiverse.ui" + compileSdk = libs.versions.android.compileSdk.get().toInt() + + defaultConfig { + applicationId = "com.jaytux.multiverse.ui" + minSdk = libs.versions.android.minSdk.get().toInt() + targetSdk = libs.versions.android.targetSdk.get().toInt() + versionCode = 1 + versionName = "1.0" + } + packaging { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + } + } + buildTypes { + getByName("release") { + isMinifyEnabled = false + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } +} + +dependencies { + debugImplementation(compose.uiTooling) +} + +compose.desktop { + application { + mainClass = "com.jaytux.multiverse.ui.MainKt" + + nativeDistributions { + targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) + packageName = "com.jaytux.multiverse.ui" + packageVersion = "1.0.0" + } + } +} diff --git a/composeApp/src/androidMain/AndroidManifest.xml b/composeApp/src/androidMain/AndroidManifest.xml new file mode 100644 index 0000000..c5db0b1 --- /dev/null +++ b/composeApp/src/androidMain/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/composeApp/src/androidMain/kotlin/com/jaytux/multiverse/ui/MainActivity.kt b/composeApp/src/androidMain/kotlin/com/jaytux/multiverse/ui/MainActivity.kt new file mode 100644 index 0000000..85787dc --- /dev/null +++ b/composeApp/src/androidMain/kotlin/com/jaytux/multiverse/ui/MainActivity.kt @@ -0,0 +1,23 @@ +package com.jaytux.multiverse.ui + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContent { + App() + } + } +} + +@Preview +@Composable +fun AppAndroidPreview() { + App() +} \ No newline at end of file diff --git a/composeApp/src/androidMain/kotlin/com/jaytux/multiverse/ui/Platform.android.kt b/composeApp/src/androidMain/kotlin/com/jaytux/multiverse/ui/Platform.android.kt new file mode 100644 index 0000000..0c61b21 --- /dev/null +++ b/composeApp/src/androidMain/kotlin/com/jaytux/multiverse/ui/Platform.android.kt @@ -0,0 +1,9 @@ +package com.jaytux.multiverse.ui + +import android.os.Build + +class AndroidPlatform : Platform { + override val name: String = "Android ${Build.VERSION.SDK_INT}" +} + +actual fun getPlatform(): Platform = AndroidPlatform() \ No newline at end of file diff --git a/composeApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml b/composeApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/composeApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/composeApp/src/androidMain/res/drawable/ic_launcher_background.xml b/composeApp/src/androidMain/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..e93e11a --- /dev/null +++ b/composeApp/src/androidMain/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml b/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml b/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..eca70cf --- /dev/null +++ b/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png b/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a571e60098c92c2baca8a5df62f2929cbff01b52 GIT binary patch literal 3593 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 WV&P9cPId+c1_n=8KbLh*2~7Y{g#b(d literal 0 HcmV?d00001 diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png b/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..61da551c5594a1f9d26193983d2cd69189014603 GIT binary patch literal 5339 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 Oz~JfX=d#Wzp$Pz52`(1^ literal 0 HcmV?d00001 diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png b/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c41dd28531901b2c23927768c84bb6765ebcc1db GIT binary patch literal 2636 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 literal 0 HcmV?d00001 diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png b/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..db5080a752731b34d38d7c634732b2cd999125d0 GIT binary patch literal 3388 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 literal 0 HcmV?d00001 diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png b/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6dba46dab19242bf475ddf2e0a10042de6a0be16 GIT binary patch literal 4926 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 Y(pk%AnLV`?3=9kmp00i_>zopr05Lje*8l(j literal 0 HcmV?d00001 diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png b/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..da31a871c8dc461a1ea114510bfac640307b0a90 GIT binary patch literal 7472 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%0DJ=&Xru2T6c8)j`>!Wqws2mo zN`_}!C%dn^ae3!;3)#0J-;87D|6R`c;m=v^4ST=Y8akIP5KZM5bKyB$(pZrcHlc5w z!QQ=sZf{JF^X}GNs&`_8yxH|1H>=M1lr3GcjN532z2y&$b&hG)ujlEC9{P94drHmP z6{aB!eu0w(^j&35JDak$!}RrYyWAa-_olgTjhrMid$Zr3 z1ONP8j_l>R&|k*%_ViSyj3a9f&b?sd&a_>{QuXFvR`b=V%Y;msoJ6pC$IMu zFSsz#NazB~%X>l%2MCfVY*J7FE62#@0iVt_h+Pr6sZ(l2V_)8OmkA9KDyEuzx(ZGWVf;$C$l=mF? zBILNl+-H5ChCJK!+5<*q+&7NAZ;-sW&p^3N;o5qxGmrjA9#Ot_uxW|!gIU|AU#m?E zGF4$eu;z)wjH!nl)Q>T4NtR&bc@%TxN$?TtCcn1X5iEJh)5>OP_k5VYTW055&4>#z z->$i+S!7&%tbO)hl{xFtnlk~V`X2AMsq@(HpX90Qu|!;;x!!2`jLJLACH*?>2koN| zJW%Fo`;)}!+!q!4=!Q_&!u@)RO1qjbX1YsMC28{5X8IbwnNm9S4&O3yjdObKo#HWx zRXfC29_Nyf+qQ|zEoMWbpm=1<`X)ia)dvhNaf%&byXer}I9Ea{aJA!Oqwb9AW6zFT zG=*vjD%{)3^;3jXqsiLTea>I`%9HEX++N{0qb+aYp&h?B#b+JMvf#4n@7ef&<*Cg@ zSpuAkIc`{FKH;}J!}Z~GQQQ-L+kI06AM_~ee`=o}&3H`wZi1DhZp{hzp1zW{)&3Q7K;MfNFl+lm0y^+=~~-L@_E*1S zp~@OP*y+E`&F|^0`og3>LuXz4cWZ9BYoGl(?a5g-)7S|I zZ71GH=&RsLDodN2!t%h`Zr0rO=PM7iZ1&r8!hLhHOk5~K<&)&~>-8FJKD|tle$L{3 zX?wF{)9jE>nv>?Xc>H^i92R-@-({)%YuTAAPWMFZpFFZPB|mW0 zinF?2lQ%IX@?40eZktV;1HYJ+z8gienN9Lr54

FY>F@VNU!VOYOzdrY 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 literal 0 HcmV?d00001 diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png b/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f25a419744727fb48b4b4137b6c6a3a8f2620d51 GIT binary patch literal 10652 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 Bm4N^N literal 0 HcmV?d00001 diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png b/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..e96783ccce844001359f968f5cd9d85b341bd3fb GIT binary patch literal 16570 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 + multiverse-ui + \ No newline at end of file diff --git a/composeApp/src/commonMain/composeResources/drawable/compose-multiplatform.xml b/composeApp/src/commonMain/composeResources/drawable/compose-multiplatform.xml new file mode 100644 index 0000000..c0bcfb2 --- /dev/null +++ b/composeApp/src/commonMain/composeResources/drawable/compose-multiplatform.xml @@ -0,0 +1,36 @@ + + + + + + + + \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/App.kt b/composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/App.kt new file mode 100644 index 0000000..cbade23 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/App.kt @@ -0,0 +1,37 @@ +package com.jaytux.multiverse.ui + +import androidx.compose.animation.AnimatedVisibility +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.Button +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import org.jetbrains.compose.resources.painterResource +import org.jetbrains.compose.ui.tooling.preview.Preview + +import multiverse_ui.composeapp.generated.resources.Res +import multiverse_ui.composeapp.generated.resources.compose_multiplatform + +@Composable +@Preview +fun App() { + MaterialTheme { + var showContent by remember { mutableStateOf(false) } + Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { + Button(onClick = { showContent = !showContent }) { + Text("Click me!") + } + AnimatedVisibility(showContent) { + val greeting = remember { Greeting().greet() } + Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { + Image(painterResource(Res.drawable.compose_multiplatform), null) + Text("Compose: $greeting") + } + } + } + } +} \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/Greeting.kt b/composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/Greeting.kt new file mode 100644 index 0000000..292837f --- /dev/null +++ b/composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/Greeting.kt @@ -0,0 +1,9 @@ +package com.jaytux.multiverse.ui + +class Greeting { + private val platform = getPlatform() + + fun greet(): String { + return "Hello, ${platform.name}!" + } +} \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/Platform.kt b/composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/Platform.kt new file mode 100644 index 0000000..f34965c --- /dev/null +++ b/composeApp/src/commonMain/kotlin/com/jaytux/multiverse/ui/Platform.kt @@ -0,0 +1,7 @@ +package com.jaytux.multiverse.ui + +interface Platform { + val name: String +} + +expect fun getPlatform(): Platform \ No newline at end of file diff --git a/composeApp/src/desktopMain/kotlin/com/jaytux/multiverse/ui/Platform.jvm.kt b/composeApp/src/desktopMain/kotlin/com/jaytux/multiverse/ui/Platform.jvm.kt new file mode 100644 index 0000000..0f0c3c1 --- /dev/null +++ b/composeApp/src/desktopMain/kotlin/com/jaytux/multiverse/ui/Platform.jvm.kt @@ -0,0 +1,7 @@ +package com.jaytux.multiverse.ui + +class JVMPlatform: Platform { + override val name: String = "Java ${System.getProperty("java.version")}" +} + +actual fun getPlatform(): Platform = JVMPlatform() \ No newline at end of file diff --git a/composeApp/src/desktopMain/kotlin/com/jaytux/multiverse/ui/main.kt b/composeApp/src/desktopMain/kotlin/com/jaytux/multiverse/ui/main.kt new file mode 100644 index 0000000..b5d7c3a --- /dev/null +++ b/composeApp/src/desktopMain/kotlin/com/jaytux/multiverse/ui/main.kt @@ -0,0 +1,13 @@ +package com.jaytux.multiverse.ui + +import androidx.compose.ui.window.Window +import androidx.compose.ui.window.application + +fun main() = application { + Window( + onCloseRequest = ::exitApplication, + title = "multiverse-ui", + ) { + App() + } +} \ No newline at end of file diff --git a/composeApp/src/iosMain/kotlin/com/jaytux/multiverse/ui/MainViewController.kt b/composeApp/src/iosMain/kotlin/com/jaytux/multiverse/ui/MainViewController.kt new file mode 100644 index 0000000..9074344 --- /dev/null +++ b/composeApp/src/iosMain/kotlin/com/jaytux/multiverse/ui/MainViewController.kt @@ -0,0 +1,5 @@ +package com.jaytux.multiverse.ui + +import androidx.compose.ui.window.ComposeUIViewController + +fun MainViewController() = ComposeUIViewController { App() } \ No newline at end of file diff --git a/composeApp/src/iosMain/kotlin/com/jaytux/multiverse/ui/Platform.ios.kt b/composeApp/src/iosMain/kotlin/com/jaytux/multiverse/ui/Platform.ios.kt new file mode 100644 index 0000000..ca8b8fd --- /dev/null +++ b/composeApp/src/iosMain/kotlin/com/jaytux/multiverse/ui/Platform.ios.kt @@ -0,0 +1,9 @@ +package com.jaytux.multiverse.ui + +import platform.UIKit.UIDevice + +class IOSPlatform: Platform { + override val name: String = UIDevice.currentDevice.systemName() + " " + UIDevice.currentDevice.systemVersion +} + +actual fun getPlatform(): Platform = IOSPlatform() \ No newline at end of file diff --git a/composeApp/src/wasmJsMain/kotlin/com/jaytux/multiverse/ui/Platform.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/jaytux/multiverse/ui/Platform.wasmJs.kt new file mode 100644 index 0000000..3c83c25 --- /dev/null +++ b/composeApp/src/wasmJsMain/kotlin/com/jaytux/multiverse/ui/Platform.wasmJs.kt @@ -0,0 +1,7 @@ +package com.jaytux.multiverse.ui + +class WasmPlatform: Platform { + override val name: String = "Web with Kotlin/Wasm" +} + +actual fun getPlatform(): Platform = WasmPlatform() \ No newline at end of file diff --git a/composeApp/src/wasmJsMain/kotlin/com/jaytux/multiverse/ui/main.kt b/composeApp/src/wasmJsMain/kotlin/com/jaytux/multiverse/ui/main.kt new file mode 100644 index 0000000..754dd37 --- /dev/null +++ b/composeApp/src/wasmJsMain/kotlin/com/jaytux/multiverse/ui/main.kt @@ -0,0 +1,12 @@ +package com.jaytux.multiverse.ui + +import androidx.compose.ui.ExperimentalComposeUiApi +import androidx.compose.ui.window.ComposeViewport +import kotlinx.browser.document + +@OptIn(ExperimentalComposeUiApi::class) +fun main() { + ComposeViewport(document.body!!) { + App() + } +} \ No newline at end of file diff --git a/composeApp/src/wasmJsMain/resources/index.html b/composeApp/src/wasmJsMain/resources/index.html new file mode 100644 index 0000000..73f99ae --- /dev/null +++ b/composeApp/src/wasmJsMain/resources/index.html @@ -0,0 +1,12 @@ + + + + + + multiverse-ui + + + + + + \ No newline at end of file diff --git a/composeApp/src/wasmJsMain/resources/styles.css b/composeApp/src/wasmJsMain/resources/styles.css new file mode 100644 index 0000000..0549b10 --- /dev/null +++ b/composeApp/src/wasmJsMain/resources/styles.css @@ -0,0 +1,7 @@ +html, body { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + overflow: hidden; +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..964007c --- /dev/null +++ b/gradle.properties @@ -0,0 +1,10 @@ +#Kotlin +kotlin.code.style=official +kotlin.daemon.jvmargs=-Xmx2048M + +#Gradle +org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8 + +#Android +android.nonTransitiveRClass=true +android.useAndroidX=true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..562de40 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,79 @@ +[versions] +agp = "8.5.2" +android-compileSdk = "35" +android-minSdk = "24" +android-targetSdk = "35" +androidx-activityCompose = "1.10.1" +androidx-appcompat = "1.7.0" +androidx-constraintlayout = "2.2.1" +androidx-core-ktx = "1.16.0" +androidx-espresso-core = "3.6.1" +androidx-lifecycle = "2.8.4" +androidx-material = "1.12.0" +androidx-test-junit = "1.2.1" +compose-multiplatform = "1.7.3" +junit = "4.13.2" +kotlin = "2.1.20" +kotlinx-coroutines = "1.10.2" +ktor = "3.1.2" +exposed = "0.58.0" +ksoup = "0.2.2" +logback = "1.5.6" +sqlite = "3.34.0" +mariadb = "3.5.3" +dotenv = "6.5.1" +serialization = "1.8.1" +json = "20231013" + + +[libraries] +kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } +kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" } +junit = { group = "junit", name = "junit", version.ref = "junit" } +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidx-core-ktx" } +androidx-test-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-junit" } +androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidx-espresso-core" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" } +androidx-material = { group = "com.google.android.material", name = "material", version.ref = "androidx-material" } +androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidx-constraintlayout" } +androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activityCompose" } +androidx-lifecycle-viewmodel = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidx-lifecycle" } +androidx-lifecycle-runtime-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidx-lifecycle" } +kotlinx-coroutines-swing = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" } + +exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" } +exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposed" } +exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" } + +ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } +ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" } +ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" } + +ktor-server-content-negotiation = { module = "io.ktor:ktor-server-content-negotiation", version.ref = "ktor" } +ktor-server-core = { module = "io.ktor:ktor-server-core", version.ref = "ktor" } +ktor-server-openapi = { module = "io.ktor:ktor-server-openapi", version.ref = "ktor" } +ktor-server-auto-head-response = { module = "io.ktor:ktor-server-auto-head-response", version.ref = "ktor" } +ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" } +ktor-server-config-yaml = { module = "io.ktor:ktor-server-config-yaml", version.ref = "ktor" } +ktor-server-test-host = { module = "io.ktor:ktor-server-test-host", version.ref = "ktor" } + +ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } + +dotenv = { module = "io.github.cdimascio:dotenv-kotlin", version.ref = "dotenv" } +json = { module = "org.json:json", version.ref = "json" } +kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version = "0.6.2" } +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" } +ksoup = { module = "com.fleeksoft.ksoup:ksoup", version.ref = "ksoup" } +logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" } +mariadb = { module = "org.mariadb.jdbc:mariadb-java-client", version.ref = "mariadb" } +sqlite = { module = "org.xerial:sqlite-jdbc", version.ref = "sqlite" } + +[plugins] +androidApplication = { id = "com.android.application", version.ref = "agp" } +androidLibrary = { id = "com.android.library", version.ref = "agp" } +composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" } +composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } +jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +ktor = { id = "io.ktor.plugin", version.ref = "ktor" } +serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..2c3521197d7c4586c843d1d3e9090525f1898cde GIT binary patch literal 43504 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 PP-GC|Wnefl2gCyaq>Ln) literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..09523c0 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..f5feea6 --- /dev/null +++ b/gradlew @@ -0,0 +1,252 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..9b42019 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/iosApp/Configuration/Config.xcconfig b/iosApp/Configuration/Config.xcconfig new file mode 100644 index 0000000..2e31ce7 --- /dev/null +++ b/iosApp/Configuration/Config.xcconfig @@ -0,0 +1,3 @@ +TEAM_ID= +BUNDLE_ID=com.jaytux.multiverse.ui.multiverse-ui +APP_NAME=multiverse-ui \ No newline at end of file diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj new file mode 100644 index 0000000..9311795 --- /dev/null +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -0,0 +1,393 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; }; + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; }; + 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; }; + 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; + 7555FF7B242A565900829871 /* multiverse-ui.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = multiverse-ui.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + B92378962B6B1156000C7307 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 058557D7273AAEEB004C7B11 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 42799AB246E5F90AF97AA0EF /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; + 7555FF72242A565900829871 = { + isa = PBXGroup; + children = ( + AB1DB47929225F7C00F7AF9C /* Configuration */, + 7555FF7D242A565900829871 /* iosApp */, + 7555FF7C242A565900829871 /* Products */, + 42799AB246E5F90AF97AA0EF /* Frameworks */, + ); + sourceTree = ""; + }; + 7555FF7C242A565900829871 /* Products */ = { + isa = PBXGroup; + children = ( + 7555FF7B242A565900829871 /* multiverse-ui.app */, + ); + name = Products; + sourceTree = ""; + }; + 7555FF7D242A565900829871 /* iosApp */ = { + isa = PBXGroup; + children = ( + 058557BA273AAA24004C7B11 /* Assets.xcassets */, + 7555FF82242A565900829871 /* ContentView.swift */, + 7555FF8C242A565B00829871 /* Info.plist */, + 2152FB032600AC8F00CF470E /* iOSApp.swift */, + 058557D7273AAEEB004C7B11 /* Preview Content */, + ); + path = iosApp; + sourceTree = ""; + }; + AB1DB47929225F7C00F7AF9C /* Configuration */ = { + isa = PBXGroup; + children = ( + AB3632DC29227652001CCB65 /* Config.xcconfig */, + ); + path = Configuration; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 7555FF7A242A565900829871 /* iosApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */; + buildPhases = ( + F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */, + 7555FF77242A565900829871 /* Sources */, + B92378962B6B1156000C7307 /* Frameworks */, + 7555FF79242A565900829871 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = iosApp; + packageProductDependencies = ( + ); + productName = iosApp; + productReference = 7555FF7B242A565900829871 /* multiverse-ui.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 7555FF73242A565900829871 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 1130; + LastUpgradeCheck = 1540; + ORGANIZATIONNAME = orgName; + TargetAttributes = { + 7555FF7A242A565900829871 = { + CreatedOnToolsVersion = 11.3.1; + }; + }; + }; + buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 7555FF72242A565900829871; + packageReferences = ( + ); + productRefGroup = 7555FF7C242A565900829871 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 7555FF7A242A565900829871 /* iosApp */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 7555FF79242A565900829871 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */, + 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Compile Kotlin Framework"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + 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 :composeApp:embedAndSignAppleFrameworkForXcode\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 7555FF77242A565900829871 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */, + 7555FF83242A565900829871 /* ContentView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 7555FFA3242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 7555FFA4242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 7555FFA6242A565B00829871 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; + DEVELOPMENT_TEAM = "${TEAM_ID}"; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); + INFOPLIST_FILE = iosApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_NAME = "${APP_NAME}"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 7555FFA7242A565B00829871 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; + DEVELOPMENT_TEAM = "${TEAM_ID}"; + ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + ); + INFOPLIST_FILE = iosApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 15.3; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_NAME = "${APP_NAME}"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA3242A565B00829871 /* Debug */, + 7555FFA4242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7555FFA6242A565B00829871 /* Debug */, + 7555FFA7242A565B00829871 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 7555FF73242A565900829871 /* Project object */; +} \ No newline at end of file diff --git a/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..ee7e3ca --- /dev/null +++ b/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} \ No newline at end of file diff --git a/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..8edf56e --- /dev/null +++ b/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "app-icon-1024.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png b/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/app-icon-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..53fc536fb9ac5c1dbb27c7e1da13db3760070a11 GIT binary patch literal 67285 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 literal 0 HcmV?d00001 diff --git a/iosApp/iosApp/Assets.xcassets/Contents.json b/iosApp/iosApp/Assets.xcassets/Contents.json new file mode 100644 index 0000000..4aa7c53 --- /dev/null +++ b/iosApp/iosApp/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} \ No newline at end of file diff --git a/iosApp/iosApp/ContentView.swift b/iosApp/iosApp/ContentView.swift new file mode 100644 index 0000000..3cd5c32 --- /dev/null +++ b/iosApp/iosApp/ContentView.swift @@ -0,0 +1,21 @@ +import UIKit +import SwiftUI +import ComposeApp + +struct ComposeView: UIViewControllerRepresentable { + func makeUIViewController(context: Context) -> UIViewController { + MainViewControllerKt.MainViewController() + } + + func updateUIViewController(_ uiViewController: UIViewController, context: Context) {} +} + +struct ContentView: View { + var body: some View { + ComposeView() + .ignoresSafeArea(.keyboard) // Compose has own keyboard handler + } +} + + + diff --git a/iosApp/iosApp/Info.plist b/iosApp/iosApp/Info.plist new file mode 100644 index 0000000..412e378 --- /dev/null +++ b/iosApp/iosApp/Info.plist @@ -0,0 +1,50 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + UILaunchScreen + + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..4aa7c53 --- /dev/null +++ b/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} \ No newline at end of file diff --git a/iosApp/iosApp/iOSApp.swift b/iosApp/iosApp/iOSApp.swift new file mode 100644 index 0000000..d83dca6 --- /dev/null +++ b/iosApp/iosApp/iOSApp.swift @@ -0,0 +1,10 @@ +import SwiftUI + +@main +struct iOSApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..ba1eb3a --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,32 @@ +rootProject.name = "multiverse-ui" +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") + +pluginManagement { + repositories { + google { + mavenContent { + includeGroupAndSubgroups("androidx") + includeGroupAndSubgroups("com.android") + includeGroupAndSubgroups("com.google") + } + } + mavenCentral() + gradlePluginPortal() + } +} + +dependencyResolutionManagement { + repositories { + google { + mavenContent { + includeGroupAndSubgroups("androidx") + includeGroupAndSubgroups("com.android") + includeGroupAndSubgroups("com.google") + } + } + mavenCentral() + } +} + +include(":composeApp") +include(":api")