Skip to content

vitoksmile/KotDil

Repository files navigation

KotDil

The easy dependency injection framework for Kotlin developers.

Maven Central Kotlin GitHub License

Quick Start

Add the dependency to your project:

repositories {
    mavenCentral()
}

dependencies {
    implementation("com.viktormykhailiv:kotdil:$kotdil_version")
}

How to use KotDil?

  1. 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 fun generateLong() = System.currentTimeMillis()
        }
    }
}
  1. Register all modules:
startKotDil {
    modules(idModule, generatorModule)
}
  1. Call inject or injectValue to get required dependency:
val user = User(injectValue(AUTO_ID), "John")

val generator by inject<RandomGenerator>() // Lazy init
generator.generateLong()

Also you can find additional usage examples in the unit-tests package

About

Dependency injection framework for Kotlin.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages