feat(01-04): add Koin + Kermit bootstrap commonMain + iOS bridge

- initKoin() helper with optional KoinAppDeclaration config
- empty appModule placeholder (Phase 2+ extends)
- configureLogging() sets Kermit tag 'recipe' (D-15)
- iOS doInitKoin() bridge → Swift symbol KoinIosKt.doInitKoin
This commit is contained in:
2026-04-24 19:41:05 +02:00
parent 0ca22f9e36
commit cc5002d1df
4 changed files with 34 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
package dev.ulfrx.recipe.di
import org.koin.dsl.module
// Phase 2 adds authModule; Phase 4 adds syncModule; Phase 5 adds catalogModule; etc.
val appModule = module {
// intentionally empty in Phase 1
}

View File

@@ -0,0 +1,10 @@
package dev.ulfrx.recipe.di
import org.koin.core.KoinApplication
import org.koin.core.context.startKoin
import org.koin.dsl.KoinAppDeclaration
fun initKoin(config: KoinAppDeclaration? = null): KoinApplication = startKoin {
config?.invoke(this)
modules(appModule)
}

View File

@@ -0,0 +1,8 @@
package dev.ulfrx.recipe.logging
import co.touchlab.kermit.Logger
fun configureLogging() {
Logger.setTag("recipe")
// Platform log writers (OSLog iOS, LogCat Android, System.out JVM/Wasm) install by default.
}

View File

@@ -0,0 +1,8 @@
package dev.ulfrx.recipe.di
import dev.ulfrx.recipe.logging.configureLogging
fun doInitKoin() {
configureLogging()
initKoin()
}