kotlin
interface MyDependency {
fun doSomething()
}
class MyDependencyImpl : MyDependency {
override fun doSomething() {
print("Doing something!")
}
}
class MyApp {
@Inject private lateinit var myDependency: MyDependency
companion object {
fun run() {
InjektMain().apply {
addModules(MyModule)
addSingletonFactory { MyDependencyImpl() }
init()
}
}
}
fun doSomethingWithDependency() {
myDependency.doSomething()
}
}