SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Infrastructure for
Mobile
Leandro Borges Ferreira - Software Engineer @ Nubank
at Nubank
Platéia - Vamos participar?
Alguém aqui…
- Acha que o app Android “builda" rápido?
- Acha que dá pra rodar os testes de UI na própria máquina?
- Já passou alguns dias gastando mais tempo debugando
gradle/test flaky/tentando fazer CI passar…
Nosso app cresceu…
+/- 1k de UI
Milhares de testes unitários
+/- 10 devs de cada plataform
+/- 20 devs de RN
Device farm in house
Bump Hell
Help BonafontNuConta Feed
. . .
Anticipation
Foundation
Android App
v1.1
v1.1
V0.8
v1.1
v1.1 v1.1 v1.1
v0.9 v2.6 v3.1 v1.4
Buck
Pensado para mono repositórios
Projetos devem ser modulares
Cache bastante agressivo
Grande ganho de performance
Buck
Difícil de configurar
OkBuck ajuda muito
Menos mágico
Buck - Aprendizados até então
Vale a pena para apps modulares
Kotlin (e Swift) não é ABI estable =|
Builds mais reproduzíveis (e menos mágicos)
Kotlin support ainda é bebe
Dados Buck
Build Dep3
clean build sample staging
gradle -> `BUILD SUCCESSFUL in 3m 13s`

buck -> `Building: finished in 01:55.7 min`

Mudanças em Dep3

gradle `BUILD SUCCESSFUL in 22s`

buck -> `Building: finished in 16.4 sec`

Mudanças em Dep2
gradle -> `BUILD SUCCESSFUL in 30s`

buck -> `Building: finished in 16.3 sec` 

(it only needed to recompile dep2 itself and the
sample dexing and packaging stuff)

Mudanças em Dep1
gradle -> `BUILD SUCCESSFUL in 45s`

buck -> `Building: finished in 15.2 sec` (it only
needed to recompile dep1 itself and the sample
dexing and packaging stuff)
Dep1
Dep2
Dep3
Obrigado

Mais conteúdo relacionado

Semelhante a Infrastructure for Mobile - Google IO Extended POA

Gabriel Pacheco e Felipe Cardoso - Nextel + React Native: Lições aprendidas a...
Gabriel Pacheco e Felipe Cardoso - Nextel + React Native: Lições aprendidas a...Gabriel Pacheco e Felipe Cardoso - Nextel + React Native: Lições aprendidas a...
Gabriel Pacheco e Felipe Cardoso - Nextel + React Native: Lições aprendidas a...
DevCamp Campinas
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 Portugues
Rodrigo Peleias
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
Rodrigo Branas
 

Semelhante a Infrastructure for Mobile - Google IO Extended POA (20)

Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
 
TDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhereTDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhere
 
Bdd e ci
Bdd e ciBdd e ci
Bdd e ci
 
Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbrido
 
Titanium appacelerator
Titanium appaceleratorTitanium appacelerator
Titanium appacelerator
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
 
Como desenvolver softwares utilizando tecnologias microsoft
Como desenvolver softwares utilizando tecnologias microsoftComo desenvolver softwares utilizando tecnologias microsoft
Como desenvolver softwares utilizando tecnologias microsoft
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
Gabriel Pacheco e Felipe Cardoso - Nextel + React Native: Lições aprendidas a...
Gabriel Pacheco e Felipe Cardoso - Nextel + React Native: Lições aprendidas a...Gabriel Pacheco e Felipe Cardoso - Nextel + React Native: Lições aprendidas a...
Gabriel Pacheco e Felipe Cardoso - Nextel + React Native: Lições aprendidas a...
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
 
Microserviços na vida real
Microserviços na vida realMicroserviços na vida real
Microserviços na vida real
 
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeTDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Developer Experience no Nubank
Developer Experience no NubankDeveloper Experience no Nubank
Developer Experience no Nubank
 
Netbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 PortuguesNetbeans Slides Fy2009 Portugues
Netbeans Slides Fy2009 Portugues
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Curso Básico Android - Aula 01
Curso Básico Android - Aula 01Curso Básico Android - Aula 01
Curso Básico Android - Aula 01
 

Infrastructure for Mobile - Google IO Extended POA

  • 1. Infrastructure for Mobile Leandro Borges Ferreira - Software Engineer @ Nubank at Nubank
  • 2. Platéia - Vamos participar? Alguém aqui… - Acha que o app Android “builda" rápido? - Acha que dá pra rodar os testes de UI na própria máquina? - Já passou alguns dias gastando mais tempo debugando gradle/test flaky/tentando fazer CI passar…
  • 3. Nosso app cresceu… +/- 1k de UI Milhares de testes unitários +/- 10 devs de cada plataform +/- 20 devs de RN
  • 5.
  • 6.
  • 7.
  • 8.
  • 10. Help BonafontNuConta Feed . . . Anticipation Foundation Android App v1.1 v1.1 V0.8 v1.1 v1.1 v1.1 v1.1 v0.9 v2.6 v3.1 v1.4
  • 11.
  • 12. Buck Pensado para mono repositórios Projetos devem ser modulares Cache bastante agressivo Grande ganho de performance
  • 13. Buck Difícil de configurar OkBuck ajuda muito Menos mágico
  • 14.
  • 15. Buck - Aprendizados até então Vale a pena para apps modulares Kotlin (e Swift) não é ABI estable =| Builds mais reproduzíveis (e menos mágicos) Kotlin support ainda é bebe
  • 16. Dados Buck Build Dep3 clean build sample staging gradle -> `BUILD SUCCESSFUL in 3m 13s` buck -> `Building: finished in 01:55.7 min` Mudanças em Dep3 gradle `BUILD SUCCESSFUL in 22s` buck -> `Building: finished in 16.4 sec` Mudanças em Dep2 gradle -> `BUILD SUCCESSFUL in 30s` buck -> `Building: finished in 16.3 sec` (it only needed to recompile dep2 itself and the sample dexing and packaging stuff) Mudanças em Dep1 gradle -> `BUILD SUCCESSFUL in 45s` buck -> `Building: finished in 15.2 sec` (it only needed to recompile dep1 itself and the sample dexing and packaging stuff) Dep1 Dep2 Dep3
  • 17.