Uber Jan 1, 2019

Engineering Uber Lite

Article Summary

Uber's main app hit 60MB and struggled on older Android devices in emerging markets. So they built something radically different.

Uber's engineering team in Bangalore created Uber Lite, a stripped-down rider app designed for 2G networks and Android phones from 2015 or earlier. The challenge: 40% of global Uber riders used older hardware that couldn't handle the feature-rich main app.

Key Takeaways

Critical Insight

Uber Lite delivers the core ride-hailing experience in 5MB with sub-300ms screen transitions, even on 2G networks and 2013-era Android phones.

The team rejected React Native, Flutter, and WebView approaches before landing on their final architecture (and the reasons why are fascinating).

About This Article

Problem

Uber Lite engineers found that trimming the existing app wasn't enough. The architecture itself needed to be redesigned because 56% of global riders use Year Class 2015 Android devices or older with unreliable network infrastructure.

Solution

The team built a new architecture using a server-driven client model. This moved heavy computation to a back-end orchestration layer, which kept network payloads under 1 MTU and removed the need for bloated native code.

Impact

Harshit Bangar's team cut down libraries like RIBs and removed 200KB of screen stack dependencies. They got response times below 300 milliseconds while keeping all core rideshare features in a single DEX file.