Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Android Build Engineering @ Airbnb

felipecsl
November 12, 2016

Android Build Engineering @ Airbnb

felipecsl

November 12, 2016
Tweet

More Decks by felipecsl

Other Decks in Technology

Transcript

  1. • Tripled in 1 year • Migrated to a monorepo

    • More code, slower builds Team Scaling
  2. Build Engineering • Debug builds with 200K+ methods • Almost

    10 min. clean builds • Poor parallelization • Multidex issues
  3. • Mature: Created by and actively maintained by Facebook. •

    Speed: Focused on performance. Highly concurrent. • Caching: Aggressive caching, supports remote cache server. • Simple: Rely on small and self contained modules. Enter Buck A new hope for Android
  4. Challenges • Caching: Hard to debug. Hidden changes invalidate cache

    keys. • Modularity: Obscure issues with annotation processors, harder to figure out code dependencies. • Configuration: Verbose, hard to parse and understand. • Dependency resolution: No automatic dependency download. Needs to be available locally. • Adoption: Requires many changes to the codebase.
  5. Adoption • OkBuck: A lifesaver. Uses Gradle's project model to

    generate BUCK configuration files. • Traction: Recently being adopted by many companies like Airbnb, Uber and Lyft. • Supported Features: Most popular libraries supported (Retrolambda, ButterKnife, Sqldelight, etc).