Summary
Disclaimer: This summary has been generated by AI. It is experimental, and feedback is welcomed. Please reach out to info@qconsf.com with any comments or concerns.
The presentation "Migrating Uber Eats Feeds to Webview" by Nick DiStefano discusses the transition of Uber Eats feeds from a native app to a webview-based approach to enhance development speed and flexibility.
Key Points Covered:
- Background: The decision to shift to a webview stack was driven by the limitations of native development, including lack of full ownership and platform dependencies.
- Objectives: To accelerate development, allow rapid iteration, and preserve the native-first design while transitioning to a webview system.
- Challenges: Faced issues with Apple and Google stacks, backward compatibility, authentication, event logging, and maintaining performance and reliability.
- Implementation Strategy: Started with a complex feed, built a native SDK for webview, and designed a bridging model for cross-compatibility.
- Benefits: Enhanced ability to perform quick UI experiments, achieve scalability, and maintain a native feel.
- Lessons Learned: Managing state backend, limiting custom bridges, and collaborating across teams and platforms were essential for success.
- Outcome: Successful migration was achieved through persistence and cooperation, enabling Uber Eats to provide a consistent user experience across devices.
This insightful presentation highlights the complexities and solutions in dealing with cross-platform development and the benefits that can be achieved through a thoughtful transition to webview methodologies.
This is the end of the AI-generated content.
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.
Speaker
Nick DiStefano
Sr Staff Engineer @Uber, Previously iOS Lead @Tumblr
Nick DiStefano is a Sr Staff Engineer at Uber focusing on client technology. He previously was mobile lead at Tumblr.