Building the New Uber Freight App as Lists of Modular, Reusable Components

As Uber Freight marked its second anniversary, we went back to the drawing board to redesign its app. The original carrier app was successful for owner-operators with one or two drivers, but it wasn’t optimized for larger fleets—feedback we were hearing directly from our carrier base. It let carriers find and move freight from point […]

The (not so) hidden cost of sharing code between iOS andAndroid

Until very recently, Dropbox had a technical strategy on mobile of sharing code between iOS and Android via C++. The idea behind this strategy was simple—write the code once in C++ instead of twice in Java and Objective C. We adopted this C++ strategy back in 2013, when our mobile engineering team was relatively small […]

How to Ship an App Rewrite Without Risking Your Entire Business

This article is the fifth in a series covering how Uber’s mobile engineering team developed the newest version of our driver app, codenamed Carbon, a core component of our ridesharing business. Among other new features, the app lets our population of over three million driver-partners find fares, get directions, and track their earnings. We began […]

Flutter 1.0: Google’s Portable UI Toolkit

Today, at Flutter Live, we’re announcing Flutter 1.0, the first stable release of Google’s UI toolkit for creating beautiful, native experiences for iOS and Android from a single codebase. Cross-platform mobile development today is full of compromise. Developers are forced to choose between either building the same app multiple times for multiple operating systems, or […]