Работал ли с сетью

«Работал ли с сетью» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал. Использовал Retrofit + OkHttp для REST API, WebSocket для чатов, Firebase для push-уведомлений.

Пример с Retrofit:

interface ApiService {
    @GET("users/{id}")
    suspend fun getUser(@Path("id") userId: Int): User
}

val retrofit = Retrofit.Builder()
    .baseUrl("https://api.example.com/")
    .addConverterFactory(GsonConverterFactory.create())
    .build()

val service = retrofit.create(ApiService::class.java)
val user = service.getUser(1) // suspend call

Что учитывал:

  • Обработку ошибок (HTTP 4xx/5xx, network timeouts)
  • Кеширование (OkHttp Cache)
  • Авторизацию (interceptors для токенов)
  • SSL-pinning (для безопасности)