Rebuilding a ride-hailing app without stopping it
Jeeny's rider and driver apps ran on a legacy Objective-C/MVC codebase, in two markets, at about a million ride requests a day. Every feature was slow to build, and the business couldn't pause releases for a rewrite.
The hard call
No big-bang rewrite. We moved to Swift and MVVM one module at a time, so every release still went out. New features went straight to SwiftUI, and older UIKit screens were bridged in, then rewritten where it paid off.
The modules became a platform: a shared UI kit with Figma design tokens, and map, payment and networking modules reused by both apps. I then took on delivery for the whole squad across iOS, Android, backend and QA, and grew the iOS team from 5 to 15.
On top of that platform we shipped security-critical payments (wallet, tokenized cards with 3-D Secure), live ride tracking and rider–driver chat, and full Arabic/English RTL support. CI gates on every pull request kept crash-free users above 99.5% while releases went from monthly to bi-weekly.