Ответ
Koin - легковесная библиотека для Kotlin, использует DSL и не требует кодогенерации. Пример:
val appModule = module {
single { NetworkService() }
factory { ViewModel(get()) }
}
Hilt - надстройка над Dagger от Google, упрощает настройку:
@HiltAndroidApp
class App : Application()
@Module
@InstallIn(SingletonComponent::class)
object AppModule {
@Provides
fun provideApi(): Api = Retrofit.Builder().build().create()
}
Kodein - еще одна Kotlin-библиотека с простым синтаксисом:
val kodein = Kodein {
bind<Api>() with singleton { RetrofitApi() }
}
Также есть Toothpick, Feather и другие. Выбор зависит от проекта: Hilt для больших приложений, Koin для быстрого старта.