Ответ
Работал с Dagger 2, Hilt и Koin.
Dagger 2:
- Настраивал компоненты, модули, скоупы.
- Использовал
@Inject,@Provides,@Binds. - Оптимизировал граф зависимостей, избегая циклических зависимостей.
Hilt:
- Упрощал внедрение зависимостей в Android-приложения.
- Работал с
@HiltAndroidApp,@AndroidEntryPoint,@ViewModelInject.
Koin:
- Быстро прототипировал проекты с
single,factory,viewModel.
Пример с Hilt:
@Module
@InstallIn(SingletonComponent::class)
class NetworkModule {
@Provides
fun provideRetrofit(): Retrofit = Retrofit.Builder()
.baseUrl("https://api.example.com")
.build()
}
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject lateinit var retrofit: Retrofit
}
Предпочитаю Hilt за простоту интеграции с Android.