I'm using Koin in a KMM project. On Android it's working as expected but on iOS I have to create a wrapper around each component I want to inject, something like this (Logger component as an example):
inline fun <reified T> getKoinInstance() =
object : KoinComponent {
val value: T by inject()
}.value
object LoggeriOS {
private val logger = getKoinInstance<Logger>()
fun logger() = logger
}
Then I can do this on iOS:
let logger = LoggeriOS.shared.logger()
logger.i(msg: "Hello World")
Question: is there a better way to do this without a wrapper class specifically for iOS?