Skip to footer

Mobile

Scaling Mobile Device Management for macOS with Chef at Uber

Uber's IT Engineering team scaled mobile device management on macOS by leveraging open source tools and custom API-driven Chef cookbooks.
Uber driver

Building a Real-time Earnings Tracker into Uber’s New Driver App

What began as a means of showing Uber's driver-partners their real-time earnings quickly became an extensible means of communicating not just earnings, but also incentives and other useful information within our new driver app.
Subway platform

Architecting a Safe, Scalable, and Server-Driven Platform for Driver Preferences with RIBs

Our driver app's new server-driven preferences section enables driver-partners to customize their experiences to make the app better fit into their lives.
Uber Beacon app screen

Engineering Uber Beacon: Matching Riders and Drivers in 24-bit RGB Colors

In our ongoing series about rewriting the Uber driver app, engineer Kevin Babcock explains how we built the connection between the app and the Uber Beacon device, which displays a color remotely selected through a rider's app.
Uber Lite pickup screens

Expanding Access: Engineering Uber Lite

Many people around the world use Android phones based on hardware developed in 2015 and earlier. Uber engineers explain how they developed a lightweight rider app to serve this global audience.
Uber driver app screen

Building a Scalable and Reliable Map Interface for Drivers

In our ongoing series about rewriting the Uber driver app, engineer Chris Haugli explains how we designed the map display to be resilient, and always show the most useful information.
How to Ship an App Rewrite Without Risking Your Entire Business

How to Ship an App Rewrite Without Risking Your Entire Business

Rather than shipping out our new driver app as a simple update to Android phones, Uber engineers delivered a dual binary package, enabling a safe and structured rollout of the new app while maintaining support for the previous version.
Scaling Cash Payments in Uber Eats - feature_image

Scaling Cash Payments in Uber Eats

Uber's new driver app leverages its offline mode along with a cash-drop system organized around restaurants so that Uber Eats customers can pay for deliveries with cash.
Carbon: Optimistic Mode article feature image

How Uber’s New Driver App Overcomes Network Lag

In our continuing series about building our new driver app, Uber engineers discuss building its Optimistic Mode feature, which lets the app continue functioning while traversing network lag areas.
Architecting Uber's New Driver App in RIBs feature image

Architecting Uber’s New Driver App in RIBs

In our continuing series about building our new driver app, Uber engineers discuss designing the architecture of the mobile app using RIBs, our open source mobile development framework.
Why We Decided to Rewrite Uber's Driver App

Why We Decided to Rewrite Uber’s Driver App

Uber engineers outline how we came to the resource-intensive decision to rewrite, rather than migrate or update, our driver app.
A JUMP bike rider at the Golden Gate Bridge

Building a Multi-Modal Transportation Platform with JUMP Bikes

Making JUMP Bikes' semi-dockless electric bicycles available on Uber's platform not only added a popular new transportation type for Uber riders, but also marked an important step in how we can use our technology to broaden transportation options.

Introducing Nanoscope: An Extremely Accurate Method Tracing Tool for Android

Uber's Mobile Engineering team open sources Nanoscope, a new method tracing tool for Android that enables developers to more accurately debug difficult performance issues.

NEAL, Uber’s Open Source Language-Agnostic Linting Platform

Not Exactly a Linter (NEAL) takes code reviews one step closer to full automation by allowing engineers to write custom syntax-based rules in any language.

Playing the Perfect Game: Building Uber Eats on Android

To mark the two-year anniversary of Uber Eats, Android engineer Hilary Karls discusses how her team's commitment to "playing the perfect game" resulted in one of Uber’s most successful products.

Harnessing Code Generation to Increase Reliability & Productivity on iOS at Uber

Uber's mobile engineers leverage code generation to make our applications more reliable and boost developer productivity.

Unifying Mobile Onboarding Experiences at Uber

By unifying mobile onboarding experiences for our new rider app, Uber Engineering made it easier than ever before for users to "get moving."

Engineering NullAway, Uber’s Open Source Tool for Detecting NullPointerExceptions on Android

Uber Engineering built and open sourced NullAway, our fast and practical tool for eliminating NPEs, to help others deploy more reliable Android apps.

Deploying More Reliable Apps with Uber Engineering’s XP Background Push

Uber Engineering's XP Background Push mitigates bugs safely and efficiently in real time, facilitating more seamless user experiences on our apps.

Unpacking the Android Bundle with AutoValue Extensions at Uber Engineering

Uber Engineering's new open source tool, AutoValue: Bundle Extension, decreases the likelihood of encountering bugs by enabling Android engineers to quickly unbundle data into value classes.

Building More Reliable Apps with Uber Engineering’s Startup Reason Reporter

In this article, members of Uber’s Mobile Platform team introduce Startup Reason Reporter, our new open source tool for detecting startup reason on iOS.

Engineering Scalable, Isolated Mobile Features with Plugins at Uber

Uber Engineering shares our best practices for working with plugins, a powerful tool that enables us to build and ship features quickly at scale.

Driver Profiles: How Uber Engineering Celebrates Drivers

Uber Engineering built a new microservice to power Driver Profiles, an in-app platform that enhances the Uber experience by celebrating drivers.

Building m.uber: Engineering a High-Performance Web App for the Global Market

In this article, we discuss how Uber Engineering designed m.uber, a lightweight web app that delivers a native app experience for riders on mobile browsers.

How Uber Engineering Verifies Data at Runtime with the Annotations You Already Use

In 2016, Uber Engineering built and open sourced RAVE, a data model validation framework for Android that leverages Java annotation processing to protect against crashes caused by invalid data.

Demystifying RxJava Backpressure on Android at Uber Engineering

In this article, Uber Engineering shares our best practices for relieving RxJava backpressure on Android through targeted operators, more forgiving RxJava 1.x configurations, and RxJava 2.x.

Engineering Signature Rendering on iOS with UberSignature

In this article, we outline how Uber Engineering developed UberSignature, a new feature that allows iOS users to draw and store touchscreen signatures on the UberRUSH app.

The Journey To Android Monorepo: The History Of Uber Engineering’s Android Codebase Organization

The monorepo codebase powering Uber Engineering's Android rider app is architected to scale for growth while supporting the IDE, reducing build times, and stabilizing the master during integrations.

Redesigning Uber Engineering’s Mobile Content Delivery Ecosystem

How Uber Engineering re-architected the content delivery feed and backend ecosystem of our new driver app to deliver an enhanced user experience.

Engineering Stability in Migrations: Moving to Immutable Collections in Uber’s Android Apps

Uber Engineering built a custom stack that generates AutoValue models using immutable collections to stably migrate Android apps at scale.

Powering UberEATS with React Native and Uber Engineering

A recipe for success: how Uber Engineering used React Native to optimize UberEATS' Restaurant Dashboard app for mobile.

Rewriting Uber Engineering’s Android Rider App with Deep Scope Hierarchies

Although an untraditional choice for building mobile architectures, deep scope hierarchies are a key component of Uber's new Android rider app that enable the quick and seamless rollout of new features.

Faster Together: Uber Engineering’s iOS Monorepo

The Uber Engineering mobile team migrates to a monorepo that uses Buck to test and deploy iOS and Android code faster and more efficiently than ever before.

Introducing Ohana, Uber Engineering’s iOS Contacts Library

Meet Uber Engineering's Ohana. Meaning family in Hawaiian, Ohana is an open sourced, iOS framework for retrieving and formatting contact information.

Engineering the Architecture Behind Uber’s New Rider App

In November 2016 Uber unveiled a sleek new rider app. The app implements a new mobile architecture across both iOS and Android. In this article, Uber Engineering discusses why we felt the need to create a new architecture pattern, and how it helps us reach our goals.

Making an Impact for Drivers as an Uber Engineering Intern

What's it like to be an Uber intern? Here's one such experience, making an impact for drivers as an Android developer on Uber Engineering's driver growth team.

Octopus to the Rescue: the Fascinating World of Inter-App Communications at Uber Engineering

Two months ago we saw our platform-agnostic test runner, called Octopus, spring to life to get our mobile builds on the move.

Popular Articles