Sobes.tech
Назад к вопросам
Junior — Middle
74

Расскажите о вашем опыте использования Dependency Injection в проектах.

Компании, где спрашивали
ВанТу Ворк

Ответ от нейросети

sobes.tech AI

В проектах на Android я использовал Dependency Injection (DI) для упрощения управления зависимостями и повышения тестируемости кода. Чаще всего применял библиотеку Dagger/Hilt.

DI позволяет:

  • Инвертировать управление созданием объектов,
  • Легко подменять реализации для тестов,
  • Уменьшить связанность компонентов.

Пример с Hilt:

@HiltAndroidApp
class MyApp : Application()

@Module
@InstallIn(SingletonComponent::class)
object NetworkModule {
    @Provides
    fun provideApiService(): ApiService {
        return Retrofit.Builder()
            .baseUrl("https://api.example.com")
            .build()
            .create(ApiService::class.java)
    }
}

@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
    @Inject lateinit var apiService: ApiService

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // apiService готов к использованию
    }
}

Такой подход значительно упрощает масштабирование и поддержку приложения.