Criando o APK do Android e publicando um App no GitHub
![Criando o APK do Android e publicando um App no GitHub](assets/criando-apk-android-publicando-app-github/criando-apk-android-publicando-app-github.jpg)
Ao desenvolver um App Android, temos acesso ao Android Studio para codificar e rodar o nosso projeto em dispositivos Android, seja físico ou emulador. Porém, e se quisermos rodar o nosso App em outros dispositivos que não temos acesso? Como por exemplo, o celular dos nossos amigos ou amigas, pais ou qualquer outra pessoa, o que podemos fazer?
Em situações como essas, precisamos gerar um arquivo executável para Android e neste artigo eu vou te mostrar um jeito simples de fazer isso, e também, como deixar o seu App público para outras pessoas baixarem.
Conhecendo o arquivo executável do Android - APK
Em todos os sistemas operacionais, existe um arquivo específico para rodar aplicativos, como por exemplo, no Windows temos o .exe. No Android esse arquivo é conhecido como APK ou Android Package, ou seja, se você quer rodar o seu App em qualquer dispositivo Android, é necessário gerar o APK do seu projeto.
![Banner da Escola de Mobile: Matricula-se na escola de Mobile. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!](assets/alura-matricula-maior-escola-tecnologia-brasil-mais-500-mil-estudantes/matricula-escola-mobile-alura-saiba-mais-versao-mobile.png)
Gerando o APK com o Android Studio
Existem várias maneiras de gerar um APK, seja pelo terminal, scripts do Gradle e até mesmo pelas opções do Android Studio. Para essa demonstração, vou utilizar o Android Studio pela praticidade, também, usarei o projeto Panucci como exemplo.
Com o projeto aberto no Android Studio:
- Acesse o menu Build
- Então escolha a opção Generate Signed Bundle or APK
A partir dessa opção iremos criar um APK assinado, é possível criar um APK sem assinatura, porém, para que você consiga instalar em qualquer dispositivo Android, ou até mesmo publicar em lojas oficiais, a assinatura será necessária:
![Janela Generate Signed Bundle or APK com duas opções: Android App Bundle e APK. Também, com os botões Cancel e Next.](assets/criando-apk-android-publicando-app-github/imagem1.jpg)
Se o seu objetivo for apenas gerar um APK sem assinatura, você pode escolher a opção Build Bundle(s) / APK (s) > APK (s). O Android Studio vai gerar o APK em debug, é possível instalar o APK em dispositivos Android, mas nem todos permitirão, e também, esse APK não pode ser publicado na Google Play/Play Store ou outras lojas que exijam a assinatura. Caso você queira saber mais sobre a assinatura de APK, você pode consultar essa página da documentação.
Observe que existem duas opções, Android App Bundle ou APK, você pode escolher a APK e então clicar em Next:
Android App Bundle gera o arquivo conhecido como aab. Uma versão mais recente de APK focado nas lojas de Apps, como a Google Play. A ideia dele é gerar várias versões de APK otimizadas para baixar apenas o que é suficiente para cada dispositivo ou recurso utilizado. Você pode obter mais informações sobre esse formato nesta página da documentação.
![Janela Generate Signed Bundle or APK com os campos: Module, Key store Path, Key store password, Key alias e Key password, botões Create New…, Choose existing…, Cancel, Previous e Next e um checkbox Remember passwords](assets/criando-apk-android-publicando-app-github/imagem2.jpg)
Na próxima página, precisamos preencher os campos solicitados:
- Module: Geralmente essa opção é marcada com o nome do projeto seguido do módulo app, por isso por padrão é Panucci.app, caso usar um outro projeto vai ser NomeDoProjeto.app.
- Key Store path: o caminho da chave geralmente é preenchido quando você tem uma chave criada.
Dado que é a primeira vez, precisamos criar uma keystore.
Criando a keystore
Para criar a keystore você deve escolher a opção Create new…
![Janela New Key Store com os campos Key Store path, Password e Confirm. Na seção Key apresenta os campos, Alias, Password, Confirm e Validity (years). Na Seção Certificate: First and Last Name, Organizational Unit, Organization, City or Locality, State or Province e Country Code (XX), e os botões Cancel e OK.](assets/criando-apk-android-publicando-app-github/imagem3.jpg)
Note que vai abrir a janela New Key Store, uma outra janela que solicita diversos campos:
- Key store path: local do seu computador para salvar a a keystore que será gerada
- Password e Confirm: senha para usar a keystore. (Salve a senha em algum local seguro, pois não é possível alterá-la!)
Em seguida você precisa preencher as informações da chave:
- Alias: nome de identificação da chave, vc pode colocar o valor que quiser
- Password e Confirm: senha da chave. Você pode usar a mesma senha da chave keystore
- Validity (years): validade em anos. Pode deixar o valor padrão de 25
As demais informações são dados pessoais e você pode inserir os seus. O resultado final fica assim:
![Janela New Key Store com todos os campos preenchidos.](assets/criando-apk-android-publicando-app-github/imagem4.jpg)
Então é só clicar em OK que voltamos para a tela anterior com o keystore preenchido:
![Janela Generate Signed Bundle or APK com todos os campos preenchidos.](assets/criando-apk-android-publicando-app-github/imagem5.jpg)
Observe que as informações Key store password, Key alias e Key password já foram preenchidas ao criar a Keystore. Então clicamos em Next:
![Janela Generate Signed Bundle or APK com os campos Destination Folder e Build Variants, e com os botões Cancel Previous e Create.](assets/criando-apk-android-publicando-app-github/imagem6.jpg)
Agora o Android Studio precisa saber qual build variant ele vai usar para gerar o APK, ao criar um projeto Android com o Android Studio, já são configuradas as variants de debug e release, sendo a debug a variante com configurações para desenvolvimento e a release para publicação, portanto, se a sua intenção é oferecer o App para outras pessoas, o ideal é usar a variante release.
Em seguida, vamos selecionar a release e clicar em Create. Nesse momento o Android Studio vai rodar scripts do Gradle para gerar o APK. Ao finalizar, ele vai apresentar a seguinte mensagem nas notificações:
![Aba notifications com a notificação Generate Signed APK indicando a mensagem que o APK foi gerado com sucesso pelo módulo ‘Panucci.app.main’ e a build variant release. Então aparece o link ‘locate’ e o ‘analyze’ para o APK.](assets/criando-apk-android-publicando-app-github/imagem7.jpg)
Note que a mensagem indica que um APK assinado foi gerado (Generate Signed APK) e oferece um link para acessar o arquivo dentro do computador a partir do locate. Ao clicar no link temos o seguinte resultado:
![Explorer exibindo os arquivos app-release.apk e output-metadata.json.](assets/criando-apk-android-publicando-app-github/imagem8.jpg)
O app-release.apk é o nosso App que pode ser executado, portanto, precisamos apenas hospedar esse arquivo em algum local onde as pessoas podem baixar e instalar.
Caso você gerasse o APK sem a assinatura, seria uma notificação similar, o título seria Build APK(s) e o nome do arquivo seria app-debug.apk.
Geralmente publicamos o nosso App em lojas oficiais, no caso do Android, a Google Play. Porém, publicar na Google Play tem uma série de detalhes e etapas que não vamos abordar nesse conteúdo, mas caso você tenha interesse, pode acompanhar a página da documentação.
Um detalhe importante é que para acessar a Play Console, página dedicada para devs que publicam Apps na Google Play, você vai precisar criar uma conta de Dev, e também, pagar uma taxa de registro de 25$ apenas uma vez considerando o momento que este artigo foi escrito. Para mais detalhes de uso da Play Store, acesse a página de suporte.
Dado que podemos armazenar em qualquer lugar acessível na internet, vou te mostrar como publicar o seu APK no GitHub e permitir que outras pessoas baixem.
Fazendo o upload o APK no GitHub
A partir de um repositório do GitHub, no meu caso do projeto Panucci, temos acesso a funcionalidade de releases. O objetivo dela é permitir publicar executáveis do projeto para outras pessoas utilizarem.
Para utilizá-la, é só clicar no link Create a new release caso seja a primeira vez do repositório:
![Página inicial do repositírio do GitHub apontando um indicador para o link Create a new release.](assets/criando-apk-android-publicando-app-github/imagem9.jpg)
Então é aberta a página para registrar um release:
![Formulário de release com a opção Release marcada entre as opções Releases ou Tags. Opções em combobox: Choose a tag e Target. Campos de texto: release title e Describe this release e botão para anexar o arquivo binário.](assets/criando-apk-android-publicando-app-github/imagem10.jpg)
Nessa página você vai precisar adicionar um título para o release que vai publicar, como também, uma descrição dele. Em seguida, precisa apenas enviar o arquivo binário onde está escrito Attach binaries by dropping them here or selecting them. Você pode arrastar o arquivo do seu diretório ou clicar para abrir o explorador de arquivo. Ao preencher tudo fica algo similar a isso:
![Formulário de release preenchido.](assets/criando-apk-android-publicando-app-github/imagem11.jpg)
Em seguida, você precisa indicar qual tag será utilizada para essa release, e também, qual branch, nesse caso eu vou criar uma tag chamada 0.0.1 e a branch vai ser a aula-5 (seria é onde está o código mais atualizado):
![Formulário de release preenchido e com a tag 0.0.1 e target aula-5](assets/criando-apk-android-publicando-app-github/imagem12.jpg)
Com tudo preenchido, é só clicar em Publish release e pronto! Você tem o seu App publicado!
Acessando releases do GitHub
O próximo passo é só compartilhar o link para baixar. Para isso, primeiro acesse a página de releases do seu repositório:
![Página de release apresentando os links do release publicado e código fonte.](assets/criando-apk-android-publicando-app-github/imagem13.jpg)
Ao criar a release, muito provavelmente você será direcionado para ela. Caso precisar acessá-la desde o zero, é só voltar para o repositório que vai aparecer o link no mesmo local onde criamos a primeira release:
![Página do repositório apresentando o nome Panucci Latest no mesmo local onde estava o link Create a new release.](assets/criando-apk-android-publicando-app-github/imagem14.jpg)
Então é só copiar o link onde está escrito apk-release.apk e pronto! Inclusive, você pode baixar o Panucci e testar no seu dispositivo Android. 😉
Conclusão
Neste artigo aprendemos como podemos gerar um executável (APK) para dispositivos Android utilizando o Android Studio. Também, vimos como podemos publicá-lo no GitHub para que outras pessoas consigam baixar.
Você é novo no mundo de desenvolvimento Android? Que tal aprender como criar o seu primeiro App desde o zero? Na formação de Android com Kotlin da Alura, você vai aprender desde os fundamentos do Android até às integrações com banco de dados, Web APIs e testes automatizados! E com isso, você vai criar um App bastante completo considerando as práticas do mercado.