Skip to content

Koin 開始リファレンス

Koin の開始に関するクイックリファレンスです。詳細なガイドについては、コア - Koin の開始 を参照してください。

開始メソッド

メソッドユースケース
startKoin { }標準的なアプリ - GlobalContext に登録
koinApplication { }テスト、SDK - 分離されたインスタンス
koinConfiguration { }Compose、Ktor 用の設定
startKoin<T>()コンパイラプラグインを使用した型指定による起動

基本的な開始方法

kotlin
startKoin {
    modules(appModule)
}

完全な設定例

kotlin
startKoin {
    logger(Level.INFO)
    environmentProperties()
    fileProperties()
    properties(mapOf("env" to "production"))
    modules(coreModule, networkModule)
    lazyModules(analyticsModule)
    createEagerInstances()
    allowOverride(false)
}

設定オプション

オプション説明
logger()ログレベルと実装を設定
modules()モジュールを即座にロード
lazyModules()バックグラウンドでモジュールをロード
properties()マップからプロパティをロード
fileProperties()koin.properties ファイルからロード
environmentProperties()システム/環境変数からロード
createEagerInstances()すべての createdAtStart シングルトンを作成
allowOverride()定義のオーバーライドの有効化/無効化

型指定による起動 (コンパイラプラグイン)

Koin コンパイラプラグイン@KoinApplication が必要です:

kotlin
@KoinApplication
class MyApp

// 開始
startKoin<MyApp>()

// 設定あり
startKoin<MyApp> {
    printLogger()
}

動的なモジュール管理

kotlin
// 開始後にロード
loadKoinModules(featureModule)

// アンロード
unloadKoinModules(featureModule)

Koin の停止

kotlin
stopKoin()  // グローバルインスタンス

// 分離されたインスタンス
koinApp.close()

ロギング

ロガープラットフォーム説明
EmptyLoggerすべてログ出力なし(デフォルト)
PrintLoggerすべてコンソール出力
AndroidLoggerAndroidLogcat
SLF4JLoggerJVMSLF4J
kotlin
startKoin {
    logger(Level.DEBUG)  // または Android の場合は androidLogger()
}

プロパティ

kotlin
startKoin {
    environmentProperties()
    fileProperties()  // koin.properties
    properties(mapOf("key" to "value"))
}

// モジュール内
single {
    ApiClient(url = getProperty("server_url"))
}

プラットフォーム別の例

Android

kotlin
class MainApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        startKoin {
            androidLogger()
            androidContext(this@MainApplication)
            modules(appModule)
        }
    }
}

Compose

kotlin
@Composable
fun App() {
    KoinApplication(
        configuration = koinConfiguration { modules(appModule) }
    ) {
        MainScreen()
    }
}

Ktor

kotlin
fun Application.module() {
    install(Koin) {
        slf4jLogger()
        modules(appModule)
    }
}

関連項目