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

Infrastructure for Mobile - Google IO Extended POA

  • 1.
    Infrastructure for Mobile Leandro BorgesFerreira - Software Engineer @ Nubank at Nubank
  • 2.
    Platéia - Vamosparticipar? 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
  • 4.
  • 9.
  • 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
  • 12.
    Buck Pensado para monorepositórios Projetos devem ser modulares Cache bastante agressivo Grande ganho de performance
  • 13.
    Buck Difícil de configurar OkBuckajuda muito Menos mágico
  • 15.
    Buck - Aprendizadosaté 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 cleanbuild 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
  • 18.