From fd3e7e1584dea63b4d8b2b155fa9cbf802c98b02 Mon Sep 17 00:00:00 2001 From: ulfrxdev Date: Fri, 24 Apr 2026 19:41:51 +0200 Subject: [PATCH] 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) --- .../jvmMain/kotlin/dev/ulfrx/recipe/main.kt | 20 ++++++++++++------- .../webMain/kotlin/dev/ulfrx/recipe/main.kt | 6 +++++- iosApp/iosApp/iOSApp.swift | 5 +++++ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/composeApp/src/jvmMain/kotlin/dev/ulfrx/recipe/main.kt b/composeApp/src/jvmMain/kotlin/dev/ulfrx/recipe/main.kt index d7717c9..9467cf1 100644 --- a/composeApp/src/jvmMain/kotlin/dev/ulfrx/recipe/main.kt +++ b/composeApp/src/jvmMain/kotlin/dev/ulfrx/recipe/main.kt @@ -2,12 +2,18 @@ package dev.ulfrx.recipe import androidx.compose.ui.window.Window import androidx.compose.ui.window.application +import dev.ulfrx.recipe.di.initKoin +import dev.ulfrx.recipe.logging.configureLogging -fun main() = application { - Window( - onCloseRequest = ::exitApplication, - title = "recipe", - ) { - App() +fun main() { + configureLogging() + initKoin() + application { + Window( + onCloseRequest = ::exitApplication, + title = "recipe", + ) { + App() + } } -} \ No newline at end of file +} diff --git a/composeApp/src/webMain/kotlin/dev/ulfrx/recipe/main.kt b/composeApp/src/webMain/kotlin/dev/ulfrx/recipe/main.kt index 8490d3d..be8e22c 100644 --- a/composeApp/src/webMain/kotlin/dev/ulfrx/recipe/main.kt +++ b/composeApp/src/webMain/kotlin/dev/ulfrx/recipe/main.kt @@ -2,10 +2,14 @@ package dev.ulfrx.recipe import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.window.ComposeViewport +import dev.ulfrx.recipe.di.initKoin +import dev.ulfrx.recipe.logging.configureLogging @OptIn(ExperimentalComposeUiApi::class) fun main() { + configureLogging() + initKoin() ComposeViewport { App() } -} \ No newline at end of file +} diff --git a/iosApp/iosApp/iOSApp.swift b/iosApp/iosApp/iOSApp.swift index 927e0b9..500c459 100644 --- a/iosApp/iosApp/iOSApp.swift +++ b/iosApp/iosApp/iOSApp.swift @@ -1,7 +1,12 @@ import SwiftUI +import ComposeApp @main struct iOSApp: App { + init() { + KoinIosKt.doInitKoin() + } + var body: some Scene { WindowGroup { ContentView()