Ответ
На текущем проекте для сетевых запросов используем Retrofit + OkHttp + Kotlin Coroutines.
Retrofit — основной клиент для REST API, с ним удобно описывать эндпоинты через интерфейсы:
interface ApiService {
@GET("users/{id}")
suspend fun getUser(@Path("id") userId: String): User
}
OkHttp — для кастомизации клиента (логирование, interceptors, таймауты).
Coroutines — для асинхронных вызовов с отменой при очистке ViewModel/Scope.
Дополнительно:
- Moshi для JSON-парсинга (легче Gson, поддерживает Kotlin null-safety).
- Retrofit CallAdapter для обёртки ответов в
Result<T>(упрощает обработку ошибок).
Если нужно кеширование — Room или OkHttp Cache. Для GraphQL — Apollo Android.