Какие технологии использовать для соединения с сервером

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

Ответ

Для соединения с сервером в Android чаще всего используют:

  1. Retrofit – популярная библиотека для работы с REST API. Поддерживает синхронные/асинхронные запросы, конвертацию JSON в объекты (через Gson/Moshi).
val retrofit = Retrofit.Builder()  
    .baseUrl("https://api.example.com/")  
    .addConverterFactory(GsonConverterFactory.create())  
    .build()  

val service = retrofit.create(ApiService::class.java)  
  1. OkHttp – низкоуровневый HTTP-клиент для кастомизации запросов (кеширование, таймауты, интерсепторы).

  2. Ktor – альтернатива Retrofit, подходит для Kotlin-first проектов.

  3. WebSockets (через OkHttp или Ktor) – для двусторонней связи в реальном времени.

  4. gRPC – для высокопроизводительного RPC (Protobuf).

Выбор зависит от API (REST/GraphQL/gRPC) и требований к производительности. Retrofit + OkHttp – стандарт для большинства случаев.