Вступить в клуб →
средняявопросСеть: Retrofit, OkHttp и сериализация

Ревьюер требует обернуть suspend-вызов Retrofit в withContext(Dispatchers.IO)

interface ShopApi {
    @GET("catalog")
    suspend fun catalog(): List<ProductDto>
}

class CatalogViewModel(private val api: ShopApi) : ViewModel() {
    fun load() = viewModelScope.launch {
        _state.value = UiState.Content(api.catalog())
    }
}

viewModelScope работает на Dispatchers.Main. Ревьюер пишет: «Сетевой вызов на главном потоке, будет NetworkOnMainThreadException». Прав ли он?

  • Нет: suspend-метод Retrofit сам не блокирует Main
  • Да: suspend-функции выполняются в вызывающем потоке
  • Да: без IO запрос упадёт на Android 9+
  • Нет: viewModelScope всегда работает на IO

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела