diff --git a/composeApp/src/commonMain/kotlin/dev/ulfrx/recipe/di/AppModule.kt b/composeApp/src/commonMain/kotlin/dev/ulfrx/recipe/di/AppModule.kt new file mode 100644 index 0000000..f0461a6 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/ulfrx/recipe/di/AppModule.kt @@ -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 +} diff --git a/composeApp/src/commonMain/kotlin/dev/ulfrx/recipe/di/Koin.kt b/composeApp/src/commonMain/kotlin/dev/ulfrx/recipe/di/Koin.kt new file mode 100644 index 0000000..1ce7e87 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/ulfrx/recipe/di/Koin.kt @@ -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) +} diff --git a/composeApp/src/commonMain/kotlin/dev/ulfrx/recipe/logging/Logging.kt b/composeApp/src/commonMain/kotlin/dev/ulfrx/recipe/logging/Logging.kt new file mode 100644 index 0000000..8fbd6a6 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/dev/ulfrx/recipe/logging/Logging.kt @@ -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. +} diff --git a/composeApp/src/iosMain/kotlin/dev/ulfrx/recipe/di/KoinIos.kt b/composeApp/src/iosMain/kotlin/dev/ulfrx/recipe/di/KoinIos.kt new file mode 100644 index 0000000..becaab7 --- /dev/null +++ b/composeApp/src/iosMain/kotlin/dev/ulfrx/recipe/di/KoinIos.kt @@ -0,0 +1,8 @@ +package dev.ulfrx.recipe.di + +import dev.ulfrx.recipe.logging.configureLogging + +fun doInitKoin() { + configureLogging() + initKoin() +}