Tools of the Trade
summary
Company moves from many repos to a single monorepo per platform to enable cross-module updates and uses Facebook’s Buck build system (via the OkBuck Gradle plugin) to cut build times; Exopackage hot‑swaps per‑module dexes and saves ~30 seconds on installs; a submit queue reduces daily master breakages that were happening at least once a day; an opinionated RIBs architecture (builder, interactor, router, lazy attach/detach) scopes state; Motive layers on Dagger, Autodispose auto‑unsubscribes RX, Artist/Stylist codegen views/themes, NullAway and Rave catch nulls and runtime contract violations, and Thrifty generates compact client models.
AI-written summary · about
chapters (14)
- 0:00Introduction to scaling challenges
- 2:13Project structure and build needs
- 6:48Introducing OkBuck for Buck
- 8:57Keeping master build stable
- 10:01Ribs architecture overview
- 14:17Ribs tooling and IDE plugins
- 17:22Core and optional code with Chrome
- 19:51Autodispose for RxJava cleanup
- 21:35Workflow framework for deep links
- 22:59UI consistency with Artist and Stylist
- 27:11Linting and code review automation
- 28:36Null safety with NullAway
- 30:45Networking with Thrifty
- 31:27Open source projects and Q&A
related talks
35mTools of the Trade
42mBuilding Scalable Mobile Projects: Fast Builds, High Reusability and Clear Ownership
48mMobile Developer Productivity at Scale
40mCase Study- How Android Platform @ Reddit learned to stop worrying and embrace DevX
20mBuilding with Monorepos
24mBuilding your ideal codebase: monorepos & multirepos living in harmony
31mOne for all, all for one: The Journey to Android Monorepo at Uber
42mMake local development (with Bazel) great again!
