Expanding Access: Engineering Uber Lite

Harshit Bangar, Prateek Garg, Uday Jalan, Manish Bharani, Anindya Chakraborty
12 min readintermediate
--
View Original

Overview

The article discusses the development of Uber Lite, a lightweight version of the Uber rider app designed for older Android devices and regions with unreliable network connectivity. It highlights the motivations behind its creation, the design principles guiding its development, and the technical strategies employed to ensure a seamless user experience despite hardware limitations.

What You'll Learn

1

How to design lightweight mobile applications for low connectivity environments

2

Why optimizing app size is crucial for user experience in emerging markets

3

How to implement server-driven architecture to reduce mobile app payloads

Prerequisites & Requirements

  • Understanding of mobile app development principles
  • Familiarity with Android development(optional)

Key Questions Answered

What are the main design principles behind Uber Lite?
Uber Lite was designed with three guiding principles: light, instant, and simple. This ensures the app remains efficient, responsive, and user-friendly, particularly for riders using older devices or in areas with limited connectivity.
How does Uber Lite handle network connectivity issues?
Uber Lite is optimized for use in low connectivity regions by minimizing network requests, caching data, and using server-side events for background updates. This design allows the app to function effectively even on 2G networks.
What strategies did Uber employ to reduce app size?
To keep Uber Lite under 5 megabytes, the team focused on shipping only essential resources, using vector images, and removing unnecessary methods from the bytecode. This approach ensures fast downloads and minimal memory usage on older devices.
What challenges did Uber face with older Android devices?
Many Uber riders use Android phones from 2015 or earlier, which often lack the hardware capabilities needed for the full Uber app. This necessitated the development of Uber Lite to provide a better experience for these users.

Key Statistics & Figures

Percentage of Uber riders using Android phones from 2015 or earlier
56 percent
This statistic highlights the need for a lightweight app like Uber Lite.
Uber Lite's download size
under 5 megabytes
This size is crucial for fast installations, especially on older devices.
Percentage of Uber rides booked via Android phones with hardware from 2014 or earlier
40 percent
This statistic underscores the importance of catering to users with older devices.

Technologies & Tools

Architecture
Ribs
Used for app architecture to separate core code from non-core code.

Key Actionable Insights

1
Focus on minimizing app size when developing for regions with limited connectivity.
By keeping the app lightweight, developers can ensure better performance and accessibility for users with older devices or slow networks.
2
Implement server-driven architecture to optimize data handling.
This approach allows for reduced payload sizes and efficient data management, which is crucial for maintaining a responsive user experience.
3
Utilize caching strategies to improve app performance in low bandwidth conditions.
Caching essential data can significantly enhance user experience by reducing the need for constant network requests, especially in areas with unreliable connectivity.

Common Pitfalls

1
Failing to optimize app size can lead to poor user experiences in low connectivity areas.
When apps are too large, they may not function well on older devices or in regions with limited bandwidth, causing frustration for users.
2
Neglecting to cache data can result in excessive network requests.
Without effective caching strategies, users may experience delays and interruptions, particularly in areas with unreliable internet access.

Related Concepts

Mobile App Development
User Experience Design
Network Optimization Strategies