Scaling iOS at Bumble (Part 1)
Article Summary
Bumble's iOS team faced a critical choice: which build system could handle hundreds of modules and future growth without crushing developer productivity?
After identifying scaling problems in their iOS codebase, Bumble's engineering team conducted a rigorous evaluation of three build systems: Swift Package Manager, Tuist, and Bazel. They built full proof-of-concepts for each, measuring performance under simulated future growth scenarios.
Key Takeaways
- SPM's graph resolution caused 10+ second waits on routine file operations
- Tuist generated projects performed equivalently to handcrafted Xcode projects
- Bazel had the steepest learning curve but showed perceptible caching benefits
- Custom converter tool automated manifest generation across all three systems
- Performance testing simulated 5 year growth by cloning median sized modules
Critical Insight
Each tool presented distinct tradeoffs between developer experience, performance characteristics, and implementation complexity, with no clear winner emerging from technical metrics alone.