Architecting the Uber driver app for Android, which needs to run for extended periods of time in the background, involved a unique idea where Activities and Services were not included in the structural foundations.
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.
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.
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.
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.
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.