Alertar os testadores sobre as novas versões do app com o SDK do Firebase App Distribution para Android: codelab

1. Visão geral

c7a9160ef7b184c7.png 22e0b52f771c060d.png

Bem-vindo ao codelab "Como integrar o SDK do Firebase App Distribution ao seu app Android". Neste codelab, você vai adicionar o SDK do App Distribution para Android ao seu app para mostrar alertas no app aos testadores quando novos builds estiverem disponíveis para download. Você vai aprender a usar uma configuração básica e uma personalizada para que os testadores façam login e recebam atualizações. Em seguida, você vai enviar uma nova versão para o App Distribution e acionar um novo alerta de build diretamente no app.

O que você vai aprender

  • Como usar o App Distribution para distribuir um app de pré-lançamento para testadores
  • Como integrar o SDK do App Distribution para Android ao seu app
  • Como alertar um testador quando um novo build de pré-lançamento estiver pronto para instalação
  • Como personalizar o SDK para atender às suas necessidades de teste

O que é necessário

  • A versão mais recente do Android Studio.
  • Exemplo de código.
  • Um dispositivo de teste com Android 4.4 ou mais recente e Google Play Services 9.8 ou mais recente, ou um emulador com Google Play Services 9.8 ou mais recente.
  • Se estiver usando um dispositivo, um cabo de conexão.

Como você usará este tutorial?

Apenas leitura Ler e fazer os exercícios

Como você classificaria sua experiência com a criação de apps Android?

Iniciante Intermediário Proficiente

2. Acessar o exemplo de código

Clone o repositório do GitHub na linha de comando.

$ git clone https://github.com/FirebaseExtended/codelab-appdistribution-android.git

Se o git não estiver instalado, você também poderá baixar o projeto de exemplo na página do GitHub ou clicando neste link.

3. Importar o app inicial

No Android Studio, selecione o diretório codelab-appdistribution-android/start ( android_studio_folder.png) no download do código de amostra (File > Open > .../codelab-appdistribution-android/start).

Agora você deve ter o projeto inicial aberto no Android Studio.

4. Criar um projeto do console do Firebase

Adicionar um novo projeto do Firebase

  1. Abra o Console do Firebase.
  2. Selecione Adicionar projeto e nomeie o projeto como "Firebase Codelab".

Você não precisa ativar o Google Analytics neste projeto.

  1. Clique em Criar projeto.

Adicionar um app ao Firebase

Registre seu app com o Firebase. Use "com.google.firebase.appdistributioncodelab" como o nome do pacote.

Adicionar o arquivo google-services.json ao app

Depois de adicionar o nome do pacote e selecionar "Registrar", siga estas etapas para adicionar google-services.json ao seu app:

  1. Clique em Fazer o download do google-services.json para receber o arquivo de configuração do Firebase para Android.
  2. Copie o arquivo google-services.json para o diretório app no seu projeto.
  3. Depois que o arquivo for baixado, clique em Pular nas próximas etapas mostradas no console. Elas já foram realizadas para você no projeto build-android-start.

Atualizar o ID do aplicativo para corresponder ao app do Firebase

  1. No menu à esquerda (guia "Projeto"), verifique se você está na visualização "Android", localize a guia "Scripts do Gradle" e abra o arquivo Gradle do módulo (nível do app), geralmente app/build.gradle.kts.
  2. Mude a propriedade applicationId para corresponder ao ID do aplicativo do seu app do Firebase. Ele deve ser "com.google.firebase.appdistributioncodelab"

Sincronizar o projeto com arquivos do Gradle

Para garantir que todas as dependências estejam disponíveis para seu app, sincronize o projeto com os arquivos do Gradle selecionando File > Sync Project with Gradle Files na barra de ferramentas do Android Studio.

5. Configurar novos alertas de build no app com o SDK do Android para App Distribution

Nesta etapa, você vai adicionar o SDK do Firebase App Distribution para Android ao seu app e mostrar alertas no app para os testadores quando novos builds estiverem disponíveis para instalação. Para isso, verifique se você ativou a API Firebase App Testers no projeto "Firebase Codelab" (no console do Google Cloud). Faça login com a mesma conta e selecione o projeto correto no menu suspenso na parte de cima.

Configurar alertas no app

O SDK do App Distribution para Android oferece duas maneiras de configurar alertas de build no app para os testadores:

  • Uma configuração básica de alerta, que vem com uma caixa de diálogo pré-criada para exibição aos testadores.
  • Uma configuração de alerta avançada, que permite personalizar a interface do usuário (IU).

Vamos começar com a configuração básica de alertas. Use updateIfNewReleaseAvailable para mostrar uma caixa de diálogo "Ativar alertas" pré-criada para testadores que ainda não ativaram os alertas e, em seguida, verifique se há um novo build disponível. Os testadores ativam os alertas fazendo login em uma conta que tem acesso ao app no App Distribution. Quando chamado, o método gera a seguinte sequência:

  1. Verifica se um testador ativou alertas. Caso contrário, o método vai mostrar uma caixa de diálogo pré-criada que solicita aos testadores que façam login no App Distribution com a Conta do Google.

Ativar alertas é um processo único no dispositivo de teste que persiste entre as atualizações do app. Os alertas permanecem ativados no dispositivo até que o app seja desinstalado ou o método signOutTester seja chamado.

  1. Verifica se há builds recém-disponibilizados para a instalação do testador.
  2. Exibe um alerta predefinido solicitando que o testador faça o download da versão mais recente.
  3. Verifica o novo tipo de build antes de continuar com a atualização:
  4. Se o novo build for um App Bundle (AAB), o testador será redirecionado para a Play Store para concluir o processo de atualização.
  5. Se o novo build for um APK, o SDK fará o download dele em segundo plano e solicitará que o testador faça a instalação quando o download for concluído. O SDK envia notificações de progresso de download ao usuário usando NotificationManager.. É possível adicionar seu próprio indicador de progresso anexando um gerenciador onProgressUpdate à tarefa updateIfNewReleaseAvailable.

Você pode chamar updateIfNewReleaseAvailable() a qualquer momento no seu app. Por exemplo, é possível chamar updateIfNewReleaseAvailable() durante o método onResume() da MainActivity:

Abra MainActivity.kt e crie o método onResume() assim:

MainActivity.kt

override fun onResume() {
    super.onResume()
    checkForUpdate()
}

Agora vamos implementar o método checkForUpdate().

MainActivity.kt

   private fun checkForUpdate() {
        firebaseAppDistribution.updateIfNewReleaseAvailable()
            .addOnProgressListener { updateProgress ->
                // (Optional) Implement custom progress updates in addition to
                // automatic NotificationManager updates.
            }
            .addOnFailureListener { e ->
                if (e is FirebaseAppDistributionException) {
                    // Handle exception.
                }
            }
    }

6. Criar e convidar testadores para baixar seu app

Nesta etapa, você vai criar o app e testar a implementação distribuindo o build para os testadores usando o Console do Firebase.

Criar o app

Quando você estiver pronto para distribuir uma versão de pré-lançamento do seu app para os testadores, crie um APK usando seu processo normal. Você precisa assinar o APK com sua chave de depuração ou de assinatura do app.

Distribuir seu app para testadores

Para distribuir seu app para os testadores, faça o upload do arquivo APK usando o console do Firebase:

  1. Abra a página App Distribution do Console do Firebase. Selecione seu projeto do Firebase quando solicitado.
  2. Na página "Versões", selecione o app que você quer distribuir no menu suspenso.

623460c3c8a82ce6.png

  1. Clique em Começar.

bf503b25066ff4a4.png

  1. Arraste o arquivo APK do seu aplicativo para o console para fazer o upload.
  2. Quando o upload for concluído, especifique os grupos de testadores e os testadores individuais que devem receber o build. (Adicione seu e-mail para receber o convite.) Em seguida, adicione notas ao build. Para saber mais sobre como criar grupos de testadores, consulte Adicionar e remover testadores.

3343048f0930e84b.png

  1. Clique em Distribuir para disponibilizar o build para os testadores.

2be58fe195928bf9.png

No Console do Firebase, agora é possível ver os testadores adicionados na versão do app.

9935a41810344c61.png

Como você incluiu seu endereço de e-mail, vai receber um convite do Firebase App Distribution para testar o app. Agora você é o primeiro testador! Siga as instruções em Aceitar o convite para configurar como testador no dispositivo de teste.

Aceitar o convite

Primeiro, aceite o convite para baixar e testar a versão.

  1. No dispositivo de teste Android, abra o e-mail enviado pelo Firebase App Distribution e toque em Começar.
  2. No app da Web do testador Firebase App Distribution que aparece, faça login com sua Conta do Google e toque em Aceitar convite. Agora você pode ver a versão que foi convidado a testar.

c18cb684f8e82ad6.png

Fazer o download da versão no dispositivo de teste

Ao navegar até o app do codelab do App Distribution, você vai notar que a versão está pronta para download.

5414d9a536f25ece.png

  1. Toque em Fazer o download e instale e execute o app.
  2. Quando o app é iniciado, ele pede para você ativar os alertas de novos builds. Toque em Ativar.

b059e09acaa4779f.png

  1. Faça login com sua conta de testador.

22e0b52f771c060d.png

Você volta para o app. Na próxima vez que executar o app, não será necessário fazer login nem aceitar alertas.

c9f33df16a2680d.png

Distribuir uma atualização para os testadores

  1. Atualize o versionName para "1.1" e o versionCode para 2 no arquivo Gradle do módulo (nível do app), geralmente app/build.gradle.
  2. Crie o APK usando seu processo normal. Você precisa assinar o APK com sua chave de depuração ou de assinatura do app.
  3. Faça upload desse novo APK no Console do Firebase, adicione seu e-mail como testador novamente e clique em Distribuir.

2dfa702edfdce6b8.png

Testar alertas de build

  1. Feche o app se ele estiver aberto.
  2. Reinicie o app.
  3. Quando o app for reiniciado, você vai receber um alerta de "Nova versão disponível".

987e3d0ba4e56f84.png

  1. Para receber a versão mais recente, clique em Atualizar.
  2. Se solicitado, escolha a opção para ativar instalações de fontes desconhecidas.
  3. Clique em Instalar (ou Atualizar) na próxima tela.

a7c7cd15d60bc764.png

  1. Parabéns! Você conseguiu atualizar o app com os alertas integrados.

7. Personalizar o login do testador

Os métodos signInTester/signOutTester e isTesterSignedIn oferecem mais flexibilidade para personalizar a experiência de login do testador para corresponder melhor com a experiência do app.

O exemplo a seguir verifica se o testador já fez login na conta de testador do Firebase App Distribution. Assim, você pode optar por exibir sua IU de login apenas para testadores que ainda não fizeram login. Depois que o testador fizer login, você poderá chamar checkForUpdate para verificar se ele tem acesso a um novo build.

Vamos desativar a verificação automática de atualizações em onResume comentando a chamada checkForUpdate().

MainActivity.kt

override fun onResume() {
        super.onResume()
        //checkForupdate()
    }

Em vez disso, checkForUpdate() já foi adicionado ao OnClickListener do updatebutton.

Agora, vamos implementar o método signIn(), que fará login do usuário se ele estiver desconectado ou fará logout se ele já estiver conectado.

MainActivity.kt

    private fun signIn() {
        if (isTesterSignedIn()) {
            firebaseAppDistribution.signOutTester()
            configureUpdateButton()
            configureSigninButton()
        } else {
            firebaseAppDistribution.signInTester()
        }
    }

Por fim, vamos implementar o método isTesterSignedIn.

MainActivity.kt

    private fun isTesterSignedIn() : Boolean {
        return firebaseAppDistribution.isTesterSignedIn
    }

Criar e testar a implementação

8. Parabéns!

Você criou o recurso "exibição de alertas no app" em um app usando o SDK do Firebase App Distribution para Android.

O que vimos

  • Firebase App Distribution
  • SDK do Firebase App Distribution para Android com novos alertas

Próximas etapas

Saiba mais

Perguntas?

Informar problemas