Beagle gRPC para Android

Aqui você encontrará a biblioteca beagle-grpc-android para ajudá-lo a utilizar gRPC em um projeto usando o Beagle no Android. Esta biblioteca conterá quase todas as configurações necessárias para adicionar gRPC em um projeto utilizando Beagle no Android.

Requisitos

Antes de começar a configurar o Beagle para o seu sistema Android, é importante verificar se você instalou todas as versões atuais dos seguintes programas:

  • JDK 8+ language
  • Android API level: at least 19 or higher
  • Kotlin 1.3+

Primeiros Passos


Este tutorial irá configurar o Beagle desde o início.

Etapa 1: adicione uma configuração ao arquivo Gradle em seu projeto:

  • Adicione mavenCentral() no bloco All projects em seu arquivo do Projeto Gradle (build.gradle)
allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

Etapa 2: adicione o plugin Kotlin Kapt e 3 dependências no gerenciador de dependências do seu aplicativo (gradle.gradle)

Maven Central Maven Central

  • Adicione o bloco de código packagingOptions no arquivo build.gradle, como no exemplo abaixo.

  • Os números de versão listados abaixo podem ter sido atualizados. Verifique as versões reais nas tags acima:

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
}

dependencies {
    implementation "br.com.zup.beagle:android:1.9.0"
    implementation "br.com.zup.beagle:beagle-grpc-android:1.0.0"

    kapt "br.com.zup.beagle:android-processor:1.9.0"
}

Etapa 3: Crie um AppHttpClientFactory

  • Esta classe será responsável por fornecer o HttpClient que será utilizado pelo Beagle para realizar as requisições.
const val BASE_URL = "http://10.0.2.2:8080" // seu host gRPC

@BeagleComponent
class AppHttpClientFactory: HttpClientFactory {
    override fun create(): HttpClient {
        return GrpcClient(BASE_URL, HttpClientDefault())
    }
}

Aqui, nós estamos informando ao Beagle para utilizar GrpcClient para realizar requisições de rede.

Vamos dar uma olhada nos parâmetros do contrutor de GrpcClient:

  • grpcAddress: Host do seu serviço gRPC. Toda requisição para este host será realizada pelo GrpcClient.
  • customHttpClient: Todas as requisições feitas para outro host serão realizadas por este HttpClient.

Portanto, uma requisição para http://10.0.2.2:8080/foo será realizada pelo GrpcClient e uma requisição para outro host, digamos, http://127.0.1.1:5555/bar será realizada pelo HttpClientDefault.

A implementação de HttpClientDefault pode ser encontrada na biblioteca Beagle-Default.


Para saber mais sobre o Beagle: Por favor verifique nosso Beagle repositório.
Para saber mais sobre o Beagle-Defaults: Por favor verifique sua documentação em Beagle Defaults.

Última modificação 05/07/2021: fix: adjust docs grpc android (#705) (c028d259)