Entre para a LISTA VIP da Black Friday

00

DIAS

00

HORAS

00

MIN

00

SEG

Clique para saber mais
Alura > Cursos de Mobile > Cursos de Flutter > Conteúdos de Flutter > Primeiras aulas do curso Flutter: distribuindo apps Androids com entrega contínua (CD)

Flutter: distribuindo apps Androids com entrega contínua (CD)

Distribuição para testes - Apresentação

Olá! Sou William Bezerra e gostaríamos de lhes dar as boas-vindas a este curso da formação de integração e entregas contínuas (CI/CD).

Audiodescrição: William se identifica como um homem pardo. Tem olhos castanhos, cabelos curtos pretos e barba também preta. Utiliza óculos de armação arredondada, fones sem fio e camiseta azul. Está sentado em uma cadeira gamer preta. Ao fundo, parede branca e lisa sem decorações.

O que vamos aprender?

Nesse curso, devemos fazer a distribuição automática do projeto de sorteio de amigo secreto, um aplicativo que já foi desenvolvido anteriormente.

Gif da aplicação Sorteador de amigo secreto. Sua interface é azul com bege e possui ilustrações com cores vibrantes. Na primeira tela de 'Vamos começar!', são inseridos nomes de dois participantes, Will e Erica, em uma caixa de texto e clica-se no botão laranja 'Iniciar brincadeira!'. Na próxima tela de 'Quem vai tirar o papelzinho', escolhe-se o participante Will por meio de um dropdown e clica-se no botão laranja 'Sortear!'. Com isso, aparece o nome 'Erica' abaixo do botão.

Lembra de todo aquele processo que você faz com seus familiares no final do ano, quando vão fazer o amigo secreto, que todo mundo insere o nome em um papel para sorteá-los depois?

Basicamente, automatizamos todo esse processo nessa aplicação. Você consegue inserir o nome da pessoa, o seu nome e sortear desses nomes.

Como esse projeto já foi desenvolvido, precisamos fazer a distribuição dele. Ao longo deste curso, é exatamente isso que você vai aprender.

Iremos pegar tudo o que foi desenvolvido, utilizar o Codemagic e fazer essa distribuição direta para a loja - tanto no ambiente de produção, quando lançamos este aplicativo, distribuindo-o de maneira automática para as pessoas usuárias, quanto em ambientes de teste, onde as pessoas vão testar o aplicativo, como em um teste de homologação.

Pré-requisitos

Antes de iniciar este curso, é muito importante que você já tenha feito os cursos anteriores da formação, tanto o curso de CI, quanto o curso que faz a automação da build do aplicativo.

Porque ao longo deste curso, vamos fazer justamente essa implementação e todo o processo de distribuição.

Desse modo, você vai conseguir aplicar esses conceitos, juntamente com os cursos anteriores, para estruturar toda a etapa de pipeline de CI e CD. Saindo do processo de CI até a última ponta, que é justamente a distribuição - o que é muito utilizado no mercado. Pequenas e médias e grandes empresas utilizam esses conceitos para garantir segurança, processos e qualidade de estruturação.

Aproveita para entrar no Discord da Alura, participar da comunidade, trocar ideia e tirar dúvidas com a galera que está fazendo a mesma formação.

Aproveite e também compartilhe nas redes sociais que você vai começar essa formação que será tão importante na sua carreira.

Distribuição para testes - Fazendo a configuração inicial no Firebase

O nosso projeto de sorteio de amigos secretos está quase finalizado, incluindo todo o processo de CI (integração contínua) e CD (entrega contínua).

Nos cursos anteriores, configuramos tanto o processo de CI quanto o de CD, parcialmente, ou seja, já automatizamos as pipelines. Portanto, já estamos realizando os testes da maneira correta, executando, gerando o arquivo de artefato e o distribuindo por e-mail.

No entanto, ainda não é a melhor maneira de fazer, pois existem formas de distribuir isso automaticamente tanto para a loja quanto para as pessoas usuárias. Dessa forma, não será preciso baixar o apk ou clicar no link para fazer download - o que pode ser um pouco chato.

O processo que nos falta é justamente pegar todo esse fluxo de CI e CD que já foi configurado e realizar a última etapa, que é a distribuição automatizada.

Distribuição em diferentes ambientes

Quando pensamos no fluxo e nas pipelines estruturadas, existem pontos específicos de distribuição. Por exemplo, na pipeline de desenvolvimento, vamos distribuir para as pessoas desenvolvedoras, então podemos tanto criar e distribuir o apk, quanto a pessoa pode executar na máquina, fazer a build, etc.

Quando avançamos para um nível acima, por exemplo, no ambiente de homologação, precisamos distribuir para quem irá testar o app - seja um PM (product manager), um PO (product owner) ou outros gestores não-técnicos. Enviar um apk resolve, mas não garante que a versão mais atualizada sempre estará disponível, que haverá um controle de versionamento e que o time entenderá como isso funciona.

Nesse ambiente de homologação, é muito interessante ter uma ferramenta que faça essa distribuição. Existem algumas ferramentas no mercado, que vamos conhecer logo adiante.

Além disso, também tem a pipeline de produção, que é direcionada para as lojas. Precisamos distribuir tanto para o Android, quanto para o iOS de forma bem integrada. No entanto, não precisamos necessariamente fazer essa configuração diretamente na loja, pois existem ferramentas automáticas.

Para o iOS, temos o TestFlight, que gera prévia da versão que vai para a loja. Funciona bem, mas existem outras ferramentas que não necessariamente precisamos integrar na loja. Por exemplo, podemos utilizar o Firebase App Distribution para o iOS.

O mesmo acontece no Android. Podemos integrar esse processo de homologação diretamente na loja, mas também é possível ter uma ferramenta separada da loja, onde conseguimos ter uma ferramenta para fazer o upload desses arquivos, como o Firebase App Distribution novamente.

E qual é a vantagem? Se temos três ambientes diferentes, o ID da sua aplicação será diferente entre homologação e produção, porque são ambientes diferentes. Então, não conseguiremos gerar um aplicativo de homologação diretamente para a loja, porque ele terá um application ID diferente. Portanto, é importante usar outras ferramentas para fazer isso.

E uma dessas ferramentas, que é muito utilizada no mercado e que é gratuita, é o Firebase App Distribution, a qual vamos utilizar para fazer essa integração no ambiente de homologação para conseguir fazer essa distribuição de maneira automática.

Configuração inicial do Firebase

A primeira etapa para iniciar essa configuração é abrir o Firebase App Distribution.

No console do Firebase, você deve criar um projeto para o seu aplicativo de forma gratuita. Apenas um único projeto no Firebase já vai te permitir configurar os aplicativos de Android e iOS para teste. Nesse caso, o nosso projeto se chama cd-alura.

Na sequência, vamos configurar um aplicativo para esse projeto. Na página de visão geral do projeto, devemos clicar na opção de "Android" para abrir a configuração desse sistema operacional.

Assim, seremos redirecionados para um formulário, que devemos preencher, para fazer essa configuração e adicionar o Firebase ao app Android.

A primeira seção é de registro do app, que contém o campo para especificar o nome do pacote do Android. Como encontramos isso? Dentro do projeto no VS Code, vamos abrir a pasta "android > app > build.gradle".

No arquivo build.gradle, por volta da linha 58, terá uma configuração do defaultConfig, que são as configurações padrões do seu projeto. Nele, encontramos justamente o applicationId, isto é, o ID da aplicação que estamos configurando.

Basta copiar esse applicationId, que é a informação necessária para fazer o cadastro do aplicativo.

build.gradle:

defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.secrete_friend_drawer"

        // código omitido…
}

Voltando no Firebase, vamos colar a informação do applicationId. Na sequência, vamos dar um apelido para esse app. Nesse caso, será "Secret Friend (Android)".

Por fim, podemos fazer a assinatura de depuração da SHA-1 (Secure Hash Algorithm 1), que é como que um arquivo de autenticação. Não é necessário preenchê-lo, é apenas opcional. Depois você configurá-lo. Já podemos clicar no botão para "Registrar app".

Após um tempo de espera, é gerado um arquivo JSON de configuração para você baixar e configurar o seu aplicativo. No caso, quando você utiliza o App Distribution com Codemagic, não precisa configurar o Firebase. Então, vamos pular essa etapa.

Como vamos subir direto no Firebase, não é preciso fazer essa configuração - a não ser que você fosse usar alguma ferramenta do Firebase no aplicativo.

Por enquanto, podemos apenas clicar em "Próxima" duas vezes para pular a segunda e terceira etapa de baixar o arquivo de configuração e adicionar o SDK do Firebase. Por fim, podemos apertar o botão "Continuar no console" localizado na quarta etapa.

Clicando em "1 App", já encontramos o app Secret Friend (Android) com o arquivo configurado e estruturado.

Na sequência, ainda no console no Firebase, vamos expandir as opções de "Liberar e Monitorar" do menu lateral esquerdo, e clicar na opção "App Distribution", que é a ferramenta que iremos utilizar ao longo do curso.

Na ferramenta do App Distribution, selecionaremos o aplicativo Secret Friend (Android) e clicaremos no botão branco de "Vamos começar". Se você tiver mais de um aplicativo, você terá que fazer uma configuração para cada aplicativo.

A partir daqui, você já consegue configurar e subir os arquivos do seu projeto dentro do "App Distribution". Por exemplo, se você quer subir o apk gerado de forma automática, você pode arrastá-lo para criar uma nova versão e distribuir os seus testes.

Os testes são configurados na aba chamada "Testadores e grupos", onde você pode criar um novo grupo de testadores, clicando em "Adicionar grupo". Por exemplo, faremos um grupo denominado homolog-testers.

Após salvá-lo, você pode adicionar os testadores nele. Ao clicar em "Adicionar um testador", basta colocar um endereço de e-mail de alguém que irá receber o convite para baixar o apk.

Nesse caso, o Firebase App Distribution já está configurado e pronto para fazer a integração no Codemagic.

Distribuição para testes - Configurando a distribuição automática no Firebase App Distribution

O Firebase já está preparado para receber os seus arquivos no App Distribution. Entretanto, ele só está recebendo de maneira manual. Ou seja, o Codemagic vai gerar o APK, você vai precisar baixar o artefato e subi-lo manualmente.

Não é isso que queremos. Queremos todo o processo integrado de ponta a ponta sem a necessidade de intervenção humana, a partir do código feito até o aplicativo chegar até a pessoa usuária.

Como estamos configurando o ambiente de homologação, a ideia é que esse aplicativo chegue até as pessoas usuárias de homologação - seja Product Managers, Product Owners, outras pessoas desenvolvedoras ou até CEO. Em outras palavras, queremos que o applicativo chegue até quem vai testá-lo.

Dentro da aba de "Testadores e grupos" do App Distribution, já tínhamos criado um grupo chamado homolog-testers, que são as pessoas de farão os testes. Se você quiser criar mais de um grupo, fique à vontade também e deixe bem estruturado para saber para quem você vai distribuir e quando vai distribuir.

Criando uma conta de serviço para o Codemagic

Agora, precisamos fazer a integração entre o Codemagic e o Firebase App Distribution para que, quando o aplicativo for gerado, automaticamente o Codemagic envie para o App Distribution.

Para fazer isso, é simples. Você vai abrir o projeto do Firebase e clicar nas configurações do projeto, logo abaixo do ícone do Firebase. Vamos selecionar a opção "Configurações do projeto" e, dentro da aba geral, existe uma série de informações que servem para configurar o projeto, como chaves e IDs.

Primeiramente, precisamos abrir a aba "Contas de serviço", que são como contas de usuários do Google que você consegue integrar de maneira automática para fazer algo. Em outras palavras, precisamos configurar o Codemagic como se ele tivesse uma conta para abrir o Firebase e fazer o upload do arquivo.

Para isso, precisamos criar uma conta de serviço para o Codemagic. Na aba de "Contas de serviço", descemos até a seção onde tem o ícone com o logotipo colorido da nuvem do Google para clicar em "Contas de serviço" onde são configuradas todas as contas.

Seremos redirecionados para um serviço externo, o Google Cloud. Algumas funções desse serviço utilizado pelo Firebase são gratuitas. Nesse caso, a função de configuração que vamos usar também é gratuita.

A página IAM e administrador do Google Cloud é onde são configuradas as informações mais confidenciais e estruturadas para o projeto.

Para estruturar o funcionamento da conta de serviço pra esse projeto, você precisa acessar a opção "Contas de serviço" no menu lateral esquerdo e clicar no botão "Criar conta de serviço" na parte superior.

Na sequência, vamos preencher esse formulário. Primeiro, definiremos o nome da conta de serviço como cd-codemagic que seria a conta de serviço do Codemagic para fazer a distribuição.

Automaticamente, é gerado o ID da conta de serviço e aí, tem a opção de você fazer uma descrição dessa conta e explicar como ela funciona. Nesse caso, como só vamos ter uma conta, não vamos inserir uma descrição.

Após clicar em "Criar e continuar", seguimos para a segunda etapa onde é preciso conceder um acesso para essa conta. Já criamos a conta para o Codemagic, mas o que ele tem permissão para fazer?

Nesse caso, para você conseguir distribuir o aplicativo, é necessário que você dê permissão para o Codemagic de editor. Dentro do dropdown de "Selecionar papel", existe uma série de permissões do Google para essas usuárias.

No caso, buscamos pela permissão de "Editor" para que o Codemagic consiga editar as versões que ele vai subir. Se você quiser adicionar outro papel no futuro, você pode adicionar, mas só essa permissão já é suficiente.

Clicamos em "Continuar", após atualizar essa política, chegamos a terceira etapa para conceder acesso às pessoas usuárias a essa conta de serviço. Não é necessário fazer nada, podemos só clicar em "Concluir".

Com isso, é gerada a versão e a conta de serviço cd-codemagic.

Gerando credenciais de acesso

Por fim, precisamos gerar as credenciais de acesso, ou seja, uma senha, um token que valida o acesso para o Codemagic ao Firebase.

Para isso, na coluna "Ações" da lista de contas de serviço existentes, vamos clicar nos três pontos da conta cd-codemagic e escolher a opção para "Gerenciar chaves" de acesso.

Em "chaves", serão listadas as chaves que você tem. No caso, não existe nenhuma chave, por isso, precisamos criar uma nova chave para essa conta. Clicando em "Adicionar chave > criar nova chave", selecionamos o tipo de chave JSON e clicamos em "Criar".

Chave privada salva no seu computador.

Na sequência, ele vai criar a chave e automaticamente fazer o download dessa chave JSON para o computador. Então, guarde-a porque na sequência vamos configurar o Codemagic.

Sobre o curso Flutter: distribuindo apps Androids com entrega contínua (CD)

O curso Flutter: distribuindo apps Androids com entrega contínua (CD) possui 88 minutos de vídeos, em um total de 36 atividades. Gostou? Conheça nossos outros cursos de Flutter em Mobile, ou leia nossos artigos de Mobile.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Flutter acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas