Engineering @ Airbnb
FELIPE LIMA / @FELIPECSL / NOV 10, 2016 / CODEPATH
• Tripled in 1 year
• Migrated to a monorepo
• More code, slower builds
• Development Environment
• Seamless build integration
• Production crashes
• Learning curve
• Debug builds with 200K+
• Almost 10 min. clean builds
• Poor parallelization
• Multidex issues
• 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.
A new hope for Android
• 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.
• 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).