feat(01-04): wire JVM + Wasm main + Swift iOSApp to bootstrap Koin + Kermit

- JVM main: configureLogging() + initKoin() before application { Window }
- Wasm main: configureLogging() + initKoin() before ComposeViewport (PITFALL #8)
- iOSApp.swift: import ComposeApp + init { KoinIosKt.doInitKoin() } (PITFALL #4)
This commit is contained in:
2026-04-24 19:41:51 +02:00
parent 8cd608a981
commit fd3e7e1584
3 changed files with 23 additions and 8 deletions

View File

@@ -2,12 +2,18 @@ package dev.ulfrx.recipe
import androidx.compose.ui.window.Window import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application import androidx.compose.ui.window.application
import dev.ulfrx.recipe.di.initKoin
import dev.ulfrx.recipe.logging.configureLogging
fun main() = application { fun main() {
Window( configureLogging()
onCloseRequest = ::exitApplication, initKoin()
title = "recipe", application {
) { Window(
App() onCloseRequest = ::exitApplication,
title = "recipe",
) {
App()
}
} }
} }

View File

@@ -2,9 +2,13 @@ package dev.ulfrx.recipe
import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.window.ComposeViewport import androidx.compose.ui.window.ComposeViewport
import dev.ulfrx.recipe.di.initKoin
import dev.ulfrx.recipe.logging.configureLogging
@OptIn(ExperimentalComposeUiApi::class) @OptIn(ExperimentalComposeUiApi::class)
fun main() { fun main() {
configureLogging()
initKoin()
ComposeViewport { ComposeViewport {
App() App()
} }

View File

@@ -1,7 +1,12 @@
import SwiftUI import SwiftUI
import ComposeApp
@main @main
struct iOSApp: App { struct iOSApp: App {
init() {
KoinIosKt.doInitKoin()
}
var body: some Scene { var body: some Scene {
WindowGroup { WindowGroup {
ContentView() ContentView()