kotlin
dependencies {
implementation "uy.klutter:kotlinx-injekt-dart:4.0.2"
implementation "uy.klutter:kotlinx-injekt-annotations-dart:4.0.2"
}
kotlin
import uy.klutter.kotlinx.injekt.inject
interface DataSource {
fun fetchData(): String
}
class RemoteDataSource : DataSource {
override fun fetchData(): String {
}
}
class LocalDataSource : DataSource {
override fun fetchData(): String {
}
}
class MyProvider {
val dataSource: DataSource by inject()
}
kotlin
import uy.klutter.kotlinx.injekt.InjektMainModule
fun main() {
InjektMainModule.init {
bind<DataSource>() with provider { RemoteDataSource() }
}
val myProvider = MyProvider()
val dataSource = myProvider.dataSource
val data = dataSource.fetchData()
}
kotlin
class SomeService {
val dataSource: DataSource by inject()
}
fun main() {
InjektMainModule.init {
bind<DataSource>() with provider { RemoteDataSource() }
}
val someService = SomeService()
}