KotDil
The easy dependency injection framework for Kotlin developers.

Quick Start
Add the dependency to your project:
repositories {
mavenCentral()
}
dependencies {
implementation("com.viktormykhailiv:kotdil:$kotdil_version")
}
How to use KotDil?
- Create your own modules to provide dependencies:
val idModule = module {
val id = AtomicInteger(1)
factory(name = AUTO_ID) {
id.getAndIncrement()
}
}
val generatorModule = module {
single<RandomGenerator> {
object : RandomGenerator {
override fun generateLong() = Random.nextLong()
}
}
single<RandomGenerator>(name = RANDOM_FAKE) {
object : RandomGenerator {
override = System.currentTimeMillis()
}
}
}
- Register all modules:
startKotDil {
modules(idModule, generatorModule)
}
- Call
inject or injectValue to get required dependency:
val user = User(injectValue(AUTO_ID), "John")
val generator by inject<RandomGenerator>()
generator.generateLong()
Also you can find additional usage examples in the
unit-tests package