How Uber Engineers the Architecture Behind Its New Rider App
Original post Engineering the Architecture Behind Uber’s New Rider App
Article Summary
Vivian Tran and Yixin Zhu from Uber reveal why they threw away years of code and rebuilt their rider app from scratch. The culprit? A 3,000-line view controller that had become impossible to test or modify safely.
In 2016, Uber completely rewrote their rider app to handle millions of daily rides across hundreds of cities. The engineering team created a new architecture pattern called Riblets to replace their failing MVC structure. This deep dive explains the technical decisions behind one of mobile development's most ambitious rewrites.
Key Takeaways
- Uber's RequestViewController ballooned from 300 to 3,000+ lines, becoming untestable
- Riblets route by business logic instead of view logic, unlike MVC or VIPER
- Core code gets stringent review; optional features can auto-disable without breaking rides
- iOS and Android share architecture, class names, and reactive programming chains
- Target: 99.99% availability means just one hour of downtime per year
Uber built Riblets to separate business logic from view logic, enabling independent testing of each component while maintaining a unified architecture across iOS and Android.
Continue reading
This page summarizes “Engineering the Architecture Behind Uber’s New Rider App” by Uber, published Dec 1, 2016. All credit for the original work goes to the authors.