使用 Compose 應用程式建立隔離環境 (Isolated Context)
使用 Compose 應用程式,您可以透過隔離的上下文以相同的方式處理 SDK 或白標應用程式 (white label application),以避免將您的 Koin 定義與最終使用者的定義混淆。
定義隔離的上下文 (isolated context)
首先,讓我們宣告隔離的上下文持有者,以便將隔離的 Koin 實例儲存在記憶體中。這可以使用一個簡單的 Object 類別來完成,如下所示。MyIsolatedKoinContext
類別持有我們的 Koin 實例:
object MyIsolatedKoinContext {
val koinApp = koinApplication {
// declare used modules
modules(sdkAppModule)
}
}
備註
根據您的初始化需求調整 MyIsolatedKoinContext
類別
使用 Compose 設定隔離的上下文 (isolated context)
現在您已經定義了一個隔離的 Koin 上下文,我們可以將其設定到 Compose 中以使用它並覆蓋所有 API。只需在根 Compose 函式中使用 KoinIsolatedContext
即可。這將在所有子 composable 中傳播您的 Koin 上下文。
@Composable
fun App() {
// Set current Koin instance to Compose context
KoinIsolatedContext(context = MyIsolatedKoinContext.koinApp) {
MyScreen()
}
}
資訊
在使用 KoinIsolatedContext
之後,所有 Koin Compose API 都將使用您的 Koin 隔離的上下文