Created
January 4, 2023 11:44
-
-
Save marenovakovic/9161cd08fe3f7ab0a4f80412b6fcf691 to your computer and use it in GitHub Desktop.
Minimal Compose iOS app, Hello World
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import androidx.compose.material.Text | |
import androidx.compose.ui.window.Application | |
import kotlinx.cinterop.ObjCObjectBase | |
import kotlinx.cinterop.autoreleasepool | |
import kotlinx.cinterop.cstr | |
import kotlinx.cinterop.memScoped | |
import kotlinx.cinterop.toCValues | |
import platform.Foundation.NSStringFromClass | |
import platform.UIKit.UIApplication | |
import platform.UIKit.UIApplicationDelegateProtocol | |
import platform.UIKit.UIApplicationDelegateProtocolMeta | |
import platform.UIKit.UIApplicationMain | |
import platform.UIKit.UIResponder | |
import platform.UIKit.UIResponderMeta | |
import platform.UIKit.UIScreen | |
import platform.UIKit.UIWindow | |
fun main() { | |
val args = emptyArray<String>() | |
memScoped { | |
val argc = args.size + 1 | |
val argv = (arrayOf("skikoApp") + args).map { it.cstr.ptr }.toCValues() | |
autoreleasepool { | |
UIApplicationMain(argc, argv, null, NSStringFromClass(SkikoAppDelegate)) | |
} | |
} | |
} | |
class SkikoAppDelegate : UIResponder, UIApplicationDelegateProtocol { | |
companion object : UIResponderMeta(), UIApplicationDelegateProtocolMeta | |
@ObjCObjectBase.OverrideInit | |
constructor() : super() | |
private var _window: UIWindow? = null | |
override fun window() = _window | |
override fun setWindow(window: UIWindow?) { | |
_window = window | |
} | |
override fun application(application: UIApplication, didFinishLaunchingWithOptions: Map<Any?, *>?): Boolean { | |
window = UIWindow(frame = UIScreen.mainScreen.bounds) | |
window!!.rootViewController = Application("Your Application") { | |
Text("Helo World, from Compose iOS app!!!") | |
} | |
window!!.makeKeyAndVisible() | |
return true | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment