Rewriting an app with millions of users: The Talabat Story

Quick Overview

Talabat successfully migrated its large-scale food and grocery delivery application, serving millions of customers across eight countries, from a legacy native development system to a unified Flutter platform, which resulted in significant improvements like a 4x increase in release cadence and enhanced app stability.

Key Points: Talabat migrated its massive food and grocery delivery app, which serves millions of customers across eight countries (Egypt, Jordan, Iraq, Kuwait, Bahrain, Qatar, UAE, Oman), to Flutter. The migration addressed critical problems associated with maintaining two separate native codebases, including duplicated efforts, platform-specific conventions, and limited knowledge sharing. The successful migration led to a 4x increase in release cadence post-migration. Key performance metrics improved, showing a clear reduction in app start-to-interactive time and a decrease in frozen frame frequency on both iOS and Android. The team used a carefully crafted proof-of-concept focusing on high-traffic areas like the restaurant menu screen before deciding to move entirely to the Flutter 'add-to-app' approach. The CTO emphasized that the stability and scalability of the unified app were paramount for maintaining customer trust and revenue.

Context: This video tells the story of Talabat, a leading on-demand food and grocery delivery platform operating across the MENA region, including major markets like Dubai, UAE. The narrative focuses on the technical challenge of managing two separate native mobile codebases (iOS and Android) and the strategic decision to migrate to a unified cross-platform framework, Flutter, to improve development efficiency and application performance for their millions of users.

Detailed Analysis

The video details Talabat's journey to rewrite its large-scale mobile application using Flutter. Sven Herzing, CRO of Talabat, explains that running two separate native codebases for millions of customers across eight countries created significant overhead, including duplicated efforts, platform-specific conventions, and limited knowledge sharing, which hampered agility and scalability. Steven Rowney, Senior Director of Engineering, further elaborated that the legacy native system led to inconsistencies and additional overhead, and a full Big Bang rewrite was out of the question due to the risk of breaking core, high-traffic features. The team decided on an 'add-to-app' approach, starting with a proof-of-concept on critical, low-traffic screens before migrating the entire restaurant menu screen. Udit Gupta, Senior Principal Engineer, noted initial skepticism about using a cross-platform solution over native development. However, the migration proved highly successful: the team managed to upscale their engineering efforts to over 15 engineers with product expertise, achieving a 4x increase in release cadence and observing significant performance improvements, including decreased start-to-interactive time and reduced frozen frame frequency on both iOS and Android. Lucas Britto, Senior Software Engineer, highlighted the smooth learning curve for Flutter, which allowed them to incrementally integrate the new code into the existing native application, ensuring stability and reducing business risk.

Raw markdown version of this recap