Agentes de Build & Distribuição de Aplicativos
Como distribuir aplicativos de maneira mais eficiente?
Pre-requisito
Para que você entenda os detalhes deste post, sugiro que você leia o post sobre Chaves Secretas API Keys - Como criptografar e distribuir entre os desenvolvedores. Nele expliquei os detalhes da criptografia e os arquivos em questão na imagem Build Agent acima.
No final deste post você verá tambem:
Como distribuir seu app de maneira automatizada
Um vídeo didático explicando como proteger as credenciais em um projeto real
Caso de Uso
Imagine que você precisa gerar uma versão nova do seu aplicativo a cada 2 semanas. Essa é a duração média de uma “Sprint” [Tempo previsto para a entrega de novas funcionalidades no modelo de desenvolvimento conhecido como “Scrum”], quando estamos desenvolvendo profissionalmente em alguma empresa de aplicativos.
Ou seja, a cada duas semanas os testadores, “Product Owners” [donos do produto] ou “Stakeholders” [resposáveis pelo projeto] vão querer ver e testar, o que a equipe desenvolveu durante as últimas duas semanas.
Tá! Até ai tudo bem. Qual é o problema nisso?
Sucetível a Erro
O processo de “roll out” de uma nova versão, ou melhor dito, o processo de liberação de uma nova versão do seu aplicativo implica em vários passos e/ou etapas. Passos esses que, além de não fazerem parte do nosso dia a dia, são muito sucetíveis a erros, muitas vezes demorados e super entediantes. Fato é que ninguem gosta nem quer se preocupar com infraestrutura, “deployment” (geração de binários), distribuição de apps ou algo não relacionado a codificação. É realmente algo muito chato e pouco prazeroso.
Eita, Entendi! Mas é agora? Tem como automatizar isso?
Agentes de Construção
A boa notícia é que esse processo todo tem como ser automatizado. Na verdade ele deve ser automatizado e para ser sincero, você não vai encontrar nenhuma empresa seriosa no mercado, que não faça isso de uma maneira ou outra.
A principal ideia por trás de tudo isso é:
Evitar erros humanos durante o processo de geração/construção do binário
Liberar os desenvolvedores, para que eles possam focar na evolução do app
Rodar todos os testes automaticamente com um click
Distribuir o aplicativo de teste para um grupo pre-estabelecido automaticamente
Evitar gargalos de pessoas chaves quando os mesmos estiverem ausentes
Dentre muitos outros como análise estática do código etc.
Como distribuir aplicativos?
No seu agente de build (que pode ser Jenkins, Bitrise, Gitlab etc.) nós executamos um script que descriptografa o arquivo local.properties.encrypted e lê as credenciais em memória > geramos o build e distribuimos o aplicativo. [Nós usamos firebase app distribuition, mas você pode usar a ferramenta da sua preferência]
Seguem os passos conforme a imagem acima:
Pega a senha depositada no agente de build (password1).
Descriptografa as keys localmente usando o script decrypt_secrets.sh.
Salva as credenciais em memória, assina e destribui o aplicativo para o ambiente desejado.
Por estar em memória, após o processo de build, remove-se as mesmas da memória.
Quer entender melhor este processo?
Entenda como proteger e compartilhar as credenciais em um projeto real kotlin multiplatform mobile:
Quer mais conteúdo assim?
Me siga, se você gosta desse tipo de conteúdo técnico didático e feito com muito carinho. ❤️
Você me encontra no 🐦twitter, 🦑 Github ou no 📺 Youtube onde tenho um curso gratuito “Do zero ao certificado Android”, outro chamado “Resoluções a problemas comuns Android” e Android Jetpack Compose disponíveis 0800 para você.
Para não perder nenhum conteúdo, inscreva-se nesse techblog clicando aqui: