Alerte 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

Este é o codelab "Como integrar o SDK do Firebase App Distribution no seu app Android". Neste codelab, você vai adicionar o SDK do Android do App Distribution ao seu app para mostrar alertas 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 seus testadores façam login e recebam atualizações. Depois, você vai enviar uma nova versão ao App Distribution e acionar um novo alerta de build diretamente no app.

Conteúdo

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

O que é necessário

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

Como você usará este tutorial?

Somente 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 você não tiver o git instalado, faça o download do projeto de exemplo na página do GitHub ou clique neste link (link em inglês).

3. Importar o app inicial

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

O projeto inicial deve estar 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 seu 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 nome do pacote.

Adicionar o arquivo google-services.json ao app

Depois de adicionar o nome do pacote e selecionar "Register", siga estas etapas para adicionar google-services.json ao 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 do seu projeto.
  3. Depois de fazer o download do arquivo, você pode pular as próximas etapas mostradas no console (elas já foram feitas para você no projeto build-android-start).

Atualize o ID do aplicativo para que ele corresponda ao seu app do Firebase

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

Sincronizar seu projeto com arquivos do Gradle

Para garantir que todas as dependências estejam disponíveis para o 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 para os testadores quando novos builds estiverem disponíveis para instalação. Para isso, ative a API Firebase App Testers para seu projeto "Firebase Codelab" (no console do Google Cloud). Você precisa fazer login com a mesma conta e selecionar o projeto correto no menu suspenso na parte superior.

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.

Vamos começar com a configuração básica de alertas. Use updateIfNewReleaseAvailable para mostrar uma caixa de diálogo predefinida "Ativar alertas" para os testadores que ainda não ativaram os alertas e verificar se um novo build está disponível. Para ativar os alertas, os testadores fazem 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 exibe uma caixa de diálogo pré-criada que solicita que os testadores façam login no App Distribution com a Conta do Google.

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

  1. Verifica se há builds recém-disponibilizados para a instalação do testador.
  2. Exibe um alerta pré-criado 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 pacote de app (AAB), o testador será redirecionado para a Play Store para concluir o processo de atualização.
  5. Se a nova versão for um APK, o SDK fará o download da nova versão em segundo plano e solicitará que o testador instale a nova versão quando o download for concluído. O SDK envia notificações de progresso de download ao usuário usando NotificationManager.. Você pode adicionar seu próprio indicador de progresso anexando um gerenciador onProgressUpdate à tarefa updateIfNewReleaseAvailable.

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

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

MainActivity.kt (link em inglês)

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

Agora, vamos implementar o método checkForUpdate().

MainActivity.kt (link em inglês)

   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 fazer o download do app

Nesta etapa, você cria seu app e testa a implementação distribuindo o build para os testadores usando o Console do Firebase.

Criar seu app

Quando estiver tudo pronto para distribuir uma versão de pré-lançamento do app para os testadores, crie o 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 os testadores

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

  1. Abra a página do 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 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 e-mail do Firebase App Distribution com um convite para testar o app. Agora você é o primeiro testador. Siga as instruções em "Aceitar o convite" para se inscrever como testador no dispositivo.

Aceitar o convite

Primeiro, você precisa aceitar o convite para fazer o download e testar a versão.

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

c18cb684f8e82ad6.png

Faça o download da versão no dispositivo de teste

Ao navegar até o app do codelab AppDistribution, é possível notar que a versão está pronta para download.

5414d9a536f25ece.png

  1. Toque em Fazer o download, instale e execute o app.
  2. Quando o app for iniciado, ele vai pedir para você ativar os novos alertas de build. Toque em Ativar.

b059e09acaa4779f.png

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

22e0b52f771c060d.png

Você voltará ao app. Na próxima vez que ele for executado, 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) que 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 o upload do novo APK no Console do Firebase, adicione seu e-mail como testador novamente e clique em Distribuir.

2dfa702edfdce6b8.png

Alertas de build de teste

  1. Feche o app se ele estiver aberto.
  2. Reinicie o app.
  3. Quando o app for reiniciado, você vai receber um alerta "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 que ele corresponda melhor à aparência do seu app.

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

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

MainActivity.kt (link em inglês)

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

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

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

MainActivity.kt (link em inglês)

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

Por fim, vamos implementar o método isTesterSignedIn.

MainActivity.kt (link em inglês)

    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 Android para novos alertas do Firebase App Distribution

Próximas etapas

Saiba mais

Perguntas?

Informar problemas