vnycall74
01/03/2023, 10:04 AMstartKoin
in the logic? Which do you prefer to put on the common package or each native package?Lee Taehoon
01/03/2023, 10:44 AMvnycall74
01/03/2023, 10:51 AM// Main.kt in Desktop
fun main() = application {
// blah blah...
LaunchedEffect(Unit) {
CommonAppKoin.startKoin()
}
}
// CommonAppKoin
object CommonAppKoin {
fun startKoin() = startKoin {
modules(commonApiModule, commonDataModule)
}
}
또한 말씀하신 내용이 common 패키지에서 CommonAppKoin를 사용하는 것이 아닌 각각 패키지에 DesktopKoin, MobileKoin etc... 이런식으로 플랫폼 별로 만드셨다는 말씀이 맞을까요!Lee Taehoon
01/03/2023, 12:04 PMLee Taehoon
01/03/2023, 12:10 PMfun main() {
CommonAppKoin.startKoin()
return application {
}
}
이런 식으로 해도 될 것 같네요.
코인 모듈을 플랫폼 종속적인 항목이 필요한 경우에만 플랫폼 별로 만들어서 startKoin 함수에서 넣어줍니다. 대표적으로 데이터베이스 모듈 같은 경우에 아래처럼 해주고 있습니다.
expect val databaseModule: Module
fun startKoin(appDeclaration: KoinAppDeclaration) = startKoin {
appDeclaration()
modules(databaseModule)
}
vnycall74
01/03/2023, 12:11 PMChrimaeon
01/03/2023, 2:02 PMLee Taehoon
01/03/2023, 2:50 PM