dependencies {
implementation 'org.kodein.di:KODEIN:7.21.1'
}KODEIN (Kotlin Dependency Injection) — это полезная библиотека для инъекции/получения зависимостей, она очень прост в использовании и настройке.
KODEIN позволяет:
— не заботиться о порядке инициализации зависимостей
— легко привязывать классы или интерфейсы к их экземплярам, или фабрикам
При этом KODEIN предлагает очень простой и читаемый декларативный DSL, эта библиотека не подвержена стиранию типов (как Java), прекрасно интегрируется с Android, предлагает идиоматический API в стиле Kotlin.
KODEIN можно использовать с Java.
Пример, показывающий всю мощь KODEIN:
val di = DI {
bindProvider<Dice> { RandomDice(0, 5) }
bindSingleton<DataSource> { SqliteDS.open("path/to/file") }
}
class Controller(private di: DI) {
private val ds: DataSource by di.instance()
}🖥 GitHub
🟡 Доки
@android_its


