> Какой диспетчер использовать для загрузки ресурса с сети в Kotlin корутинах (Kotlin, Android)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: IBS

Стек: Kotlin, Android

> Пример ответа

Для загрузки ресурса из сети в Kotlin корутинах на Android чаще всего используют библиотеку Retrofit в паре с OkHttp и модулем kotlinx.coroutines. Retrofit автоматически поддерживает корутины через suspend-функции в объявлении API-интерфейса.

Пример:

interface ApiService {
    @GET("data")
    suspend fun fetchData(): Response<MyData>
}

// В ViewModel или use case
viewModelScope.launch {
    try {
        val response = apiService.fetchData()
        if (response.isSuccessful) {
            // обработать response.body()
        }
    } catch (e: Exception) {
        // обработать ошибку сети
    }
}

Если требуется более тонкий контроль (например, прогресс загрузки или работа с потоками), используют Ktor Client - он изначально асинхронен и хорошо интегрируется с корутинами. Для простых случаев подойдёт и withContext(Dispatchers.IO) { URL(url).readText() }, но это не рекомендуется из-за отсутствия обработки ошибок и таймаутов.

Ключевой момент: всегда используйте Dispatchers.IO для сетевых вызовов внутри корутин, чтобы не блокировать главный поток.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью