> Какой диспетчер использовать для загрузки ресурса с сети в 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 для сетевых вызовов внутри корутин, чтобы не блокировать главный поток.
> Похожие задачи по mobile
Какие проблемы возникают при оборачивании launch в try-catch в Kotlin Coroutines
Как работает компиляция в Kotlin Multiplatform
Как управлять жизненным циклом корутины в Kotlin
Что такое оператор to в Kotlin и как он используется
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью