본문으로 건너뛰기

Compose 애플리케이션을 사용한 격리된 컨텍스트

Compose 애플리케이션을 사용하면 SDK 또는 화이트 라벨(white label) 애플리케이션을 처리하기 위해 격리된 컨텍스트와 동일한 방식으로 작업하여 Koin 정의를 최종 사용자 정의와 혼합하지 않도록 할 수 있습니다.

격리된 컨텍스트 정의

먼저 격리된 Koin 인스턴스를 메모리에 저장하기 위해 격리된 컨텍스트 홀더를 선언합니다. 이는 다음과 같은 간단한 Object 클래스로 수행할 수 있습니다. MyIsolatedKoinContext 클래스는 Koin 인스턴스를 보유합니다.

object MyIsolatedKoinContext {

val koinApp = koinApplication {
// 사용할 모듈 선언
modules(sdkAppModule)
}
}
노트

MyIsolatedKoinContext 클래스를 초기화 필요에 따라 조정하십시오.

Compose를 사용하여 격리된 컨텍스트 설정

이제 격리된 Koin 컨텍스트를 정의했으므로 Compose에서 이를 설정하여 사용하고 모든 API를 오버라이드(override)할 수 있습니다. 루트 Compose 함수에서 KoinIsolatedContext를 사용하십시오. 이렇게 하면 Koin 컨텍스트가 모든 하위 컴포저블(composable)로 전파됩니다.

@Composable
fun App() {
// 현재 Koin 인스턴스를 Compose 컨텍스트로 설정
KoinIsolatedContext(context = MyIsolatedKoinContext.koinApp) {

MyScreen()
}
}
정보

모든 Koin Compose API는 KoinIsolatedContext를 사용한 후 Koi 격리된 컨텍스트를 사용합니다.