Ответ
Да, работал с gRPC. Это высокопроизводительный RPC-фреймворк от Google, использующий Protocol Buffers (protobuf) для сериализации данных. В Android интегрируется через зависимости grpc-android и grpc-okhttp.
Пример:
- Создаем
.protoфайл:
syntax = "proto3";
service MyService {
rpc GetData (Request) returns (Response);
}
message Request { string query = 1; }
message Response { string result = 1; }
-
Генерируем код через
protobuf-gradle-plugin. -
Используем в коде:
val channel = ManagedChannelBuilder.forAddress("api.example.com", 443).build()
val stub = MyServiceGrpc.newBlockingStub(channel)
val response = stub.getData(Request.newBuilder().setQuery("test").build())
Плюсы:
- Эффективность (бинарный формат).
- Поддерка потоков.
Минусы: - Сложнее дебагать (не как JSON).
- Требует кодогенерации.
Для простых API иногда предпочитаю Retrofit, но для сложных сценариев gRPC отлично подходит.