How Uber Deals with Large iOS App Size
Article Summary
Uber's iOS app was bleeding users: every time it crossed Apple's download limit, they lost 10% of installations and 20% of first-time bookings.
Uber's engineering team tackled a critical problem: their iOS apps (Rider, Driver, Eats) were too large, hitting Apple's over-the-air download limits and costing them revenue. They turned to advanced compiler optimizations to shrink their binaries without slowing down the app or disrupting developers.
Key Takeaways
- Reduced Uber Rider app code size by 23% using whole-program machine outlining
- Discovered machine code patterns follow power-law distribution across millions of instructions
- Built custom LLVM pipeline that halved code growth rate over time
- Achieved 3.4% performance improvement while shrinking binary size
- Zero developer involvement required: optimizations run only on release builds
Critical Insight
Uber cut iOS app size by 23% and improved performance by 3.4% through repeated machine-code outlining at the whole-program level, recovering lost revenue from download restrictions.