O documento discute as vantagens e desvantagens do uso do Buck para gerenciar builds de aplicativos móveis no Nubank. O Buck oferece builds mais rápidos do que o Gradle, especialmente para mudanças em dependências, mas é mais difícil de configurar. Embora o Buck traga ganhos de performance significativos, o suporte para Kotlin ainda está em desenvolvimento.
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
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