Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

21
Desenvolvemos produtos digitais

description

Palestra realizada no QCOn SP 2014, por Victor Nascimento e Thiago Lioy, no dia 11 de abril. Os consultores abordaram práticas de integração contínua e entrega contínua em Android e iOS, usando Jenkins e Bots.

Transcript of Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Page 1: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Desenvolvemos produtos digitais

Page 2: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Continuous Mobile: Entrega e Integração

Contínuas em iOS e Android

Page 3: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Integração Contínua (IC)?

Temas

Deployment Continuo(DC)?

Topologia IC/DC Mobile

Desafios Mobile

QA & comentários

Page 4: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Um projeto qualquer...

Page 5: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

O problema...

Page 6: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Módulo de leitor de código de barra

Page 7: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Na madrugada do Sábado …

Page 8: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Como detectar o problema antes? Automatização!

Git Server

CI Server

CI faz um polling do git

Emulador 1 Emulador n

...Relatórios

Mobiledev - CD Server

(Concrete Solutions)

Page 9: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Benefícios IC/DC

• Aumento da inspeção e consequente aumento da transparência

• Garantia de execução de testes a cada commit (polling do SIC)

• Dar mais confiança para o time em atualizações de versões

• Repetibilidade da verificação de erros reais

• One click Deploy (Production)

• Scare Friday ? Deploys de sexta-feira

Page 10: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Automatização = !ADT && !Studio

Page 11: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Build automatizado - Android

Provavelmente será

depreciado logo…

A melhor opção para quem já está acostumado com Java

e Eclipse. Comunidade altamente ativa!

Muito bom se você não usa o Eclipse, maaaas

ainda não está completo…

Page 12: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Automatização ! Scriptando em iOS

Page 13: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

• Matriz de problemas: vértice A (versões do Android) x vértice B (densidades de telas)

• http://square.github.io/spoon/ execução do projeto em todos os devices que o adb encontrar

• Jenkins Matrix Parameter Job

• Próximas versões do Android Maven

• Plugins terão suporte à execução

• Paralela dos testes do projeto

Emuladores - Android

Page 14: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

iOS - CI com Bots• Integração com simuladores built in

• Plataforma da Apple / Vantagens a longo prazo (Evolução do produto)

• Pouco customizável . So far!

• Relatórios

• Integração com CocoaPods

Page 15: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

iOS - CI com Jenkins

• Scripts para build, test e archive usando Xcodebuild cmd line tools

• + Customizável

• + Relatórios

• Boa integração com Cocoapods (Pre Step build)

• Free

• Plataforma + madura

Page 16: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

iOS - CI com Jenkins

Page 17: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Android - CI com Jenkins

• Emuladores por meio do plugin Android Emulator Plugin

Page 18: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Android - CI com Jenkins

Page 19: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Tests

• Testes Unitários

• Testes de Integração

• Testes de Usabilidade

• Frameworks de Test (Torne escrever tests fácil ou "esqueça")

• Relatório de Cobertura de Tests como ferramenta de inspeção e incentivo à escrita de tests, e não como métrica a ser alcançada. (100%)

Page 20: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

Soluções Deployment Continuo

• TestFlight (iOS*)

• Solução Interna MobileDev

• Appaloosa (https://www.appaloosa-store.com/)

• Appblade (https://appblade.com/)

• Google Play Native App Beta Testing (Android*)

• Alternativas

Page 21: Continuous Mobile: Entrega e Integração Contínuas em iOS e Android

blog.concretesolutions.com.br

@ConcreteS

facebook.com/ConcreteS

[email protected]

[email protected]