Entrega contínua em Android Como automatizar a distribuição de apps
Roger Silva
Prefácio
Sua empresa será a responsável por desenvolver um novo app Android para seu cliente. O arquiteto de software será o encarregado por dar o kick-off do projeto. Ele abre o Android Studio, cria um novo projeto, nomeia-o, redefine seu nome de pacote, e define a API mínima suportada pelo app e plataformasalvo (telefone, tablet, Android Wear, TV, Android Auto etc). Então, é hora de construir a aplicação! Na verdade, não. É hora de consertála. Sim. Consertá-la. Pois é tido como premissa que todo novo software está quebrado até que ele seja validado.
Em contrapartida ao modelo Waterfall, em que um novo software tem suas funcionalidades somente validadas ao final do ciclo de seu desenvolvimento, quem sabe validá-lo desde a escrita de suas primeiras linhas de código?
Mas até termos um protótipo funcional levará dias. O que validaremos então? A resposta é simples: suas estruturas internas. Desde o primeiro dia de desenvolvimento, se possível.
De métodos de instância até contextos funcionais em nível de business, o app terá sua chance de ser validado. E não somente isso. Há a geração de relatórios resultantes de análises de suas estruturas e publicação automatizada para o Google Play. Isso desde o primeiro dia de implementação. Várias vezes ao dia, caso desejado.
Esse contexto expressa o dia a dia de um time de desenvolvimento que faz entrega contínua de seu software. Validações sendo realizadas o mais brevemente possível, publicações do app para o cliente diversas vezes durante a semana, e feedback antecipado sobre o estado atual do app da parte do cliente. Isso não é sonho. Isso é realidade.
Desde a publicação do livro Continuous Delivery — Reliable Software Releases Through Build, Test, And Deployment Automation, de Jez Humble e David Farley, muito foi discutido sobre o assunto. Porém, um vácuo literário ainda persistia.
Como fazer entrega contínua de aplicações mobile? Mais especificamente, apps Android. Trata-se de um contexto peculiar. Apps são publicados para o Google Play (ou para outras plataformas de distribuição). Alguns tipos de testes requerem um dispositivo para suas execuções. Assim, a comunidade de desenvolvimento mobile merecia uma publicação como esta para solucionar essas questões.
A quem este livro se destina?
Você é desenvolvedor mobile Android? Esta publicação será muito bem-vinda a você. Você é desenvolvedor mobile iOS? Arrisco-me a dizer que também lhe será muito útil. Pois muitas ideias retratadas aqui são compartilhadas entre as duas plataformas mobile. O que diferirá serão as tecnologias.
Você é profissional de TI, não necessariamente um desenvolvedor? Este livro também fará de você um profissional melhor, pois, além da parte teórica sobre os conceitos de integração, entrega e deployment contínuo, serão expostos como esses conceitos são colocados em prática.
Porém, esta publicação é direcionada não somente para profissionais, como também para estudantes. Apesar de não ser voltada para calouros, o contato com o conteúdo deste livro permite com que esse público esteja a par do que o mercado de produção de software de alta qualidade demanda de seus profissionais.
O único requisito técnico recomendado para a leitura deste livro é o conhecimento básico de programação em Java, tal que facilite a compreensão do leitor sobre o funcionamento de testes automatizados para apps Android.
Sumário
- 1 Primeiros passos e definições
- 1.1 O problema
- 1.2 Pipeline de deployment
- 1.3 Integração contínua
- 1.4 Entrega contínua x Deployment contínuo
- 1.5 O caso de estudo
- 2 Gerenciamento de branches
- 2.1 Gerenciando branches em um contexto com integração contínua
- 2.2 Estratégias de branching
- 3 Testes automatizados
- 3.1 O que é um teste automatizado?
- 3.2 Testes unitários
- 3.3 Análise estática de código
- 3.4 Testes de integração
- 3.5 Testes de integração em Android
- 3.6 Testes funcionais
- 4 Ferramentas para integração e entrega contínua
- 4.1 Travis CI
- 4.2 GoCD
- 4.3 Jenkins
- 4.4 Comparação entre ferramentas
- 4.5 Publicação no Google Play
- 5 Distribuições over-the-air
- 5.1 O conceito
- 5.2 Requisitos para atualizações OTA
- 5.3 HockeyApp
- 5.4 Crashlytics
- 5.5 Conclusão
- 6 Bibliografia
Dados do produto
- Número de páginas:
- 190
- ISBN:
- 978-85-5519-219-7
- Data publicação:
- 09/2016