Abstract
Uber Eats has many surfaces developed using native-first design. Historically these were built on the Android and iOS stacks. To accelerate development and enable rapid iteration and experimentation, while preserving the native-first design, a webview-powered stack was developed.
There were many questions at the beginning about if this is even possible to build, much less could it be performant and effective at scale. Basic components of the native stack which we’d always taken for granted had to be reimagined in a Webview world. We’ll dive into redesigning authentication, event logging, app startup, state management, page navigation and more.
We’ll also dig into challenges such as navigating the rough edges of Apple and Google’s stacks, collaborating with those companies, managing App<>Webview bridging, designing an in-house native SDK for fully featured and reliable webviews, backwards compatibility with older app versions, among others.
However, building the new stack was only the starting point. We’ll also unravel 10 years of features, build a spec for what exists today, understand the UX, analytics, Ads, accessibility and reliability requirements which must be met for a successful launch.
Gain valuable insights into making webviews look and feel purely native, making UI migrations effective at scale, and what limitations exist at the edge of backend driven native design.