$30 off During Our Annual Pro Sale. View Details »

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. Android Build
    Engineering @ Airbnb
    FELIPE LIMA / @FELIPECSL / NOV 10, 2016 / CODEPATH

    View Slide

  2. Team scaling

    View Slide

  3. • Tripled in 1 year
    • Migrated to a monorepo
    • More code, slower builds
    Team Scaling

    View Slide

  4. React Native

    View Slide

  5. React Native
    • Development Environment
    • Seamless build integration
    • Production crashes
    • Learning curve

    View Slide

  6. Build Engineering

    View Slide

  7. Build Engineering
    • Debug builds with 200K+
    methods
    • Almost 10 min. clean builds
    • Poor parallelization
    • Multidex issues

    View Slide

  8. Buck

    View Slide

  9. • 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

    View Slide

  10. 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.

    View Slide

  11. 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).

    View Slide

  12. Questions?

    View Slide

  13. Thanks!

    View Slide