A multi-brand fashion e-commerce retailer
4.1★
App Store rating
8 wks
Kickoff to App Store
+28%
D30 retention
−14pp
Checkout abandonment
Overview
A multi-brand fashion retailer had an iOS app sitting at 2.8 stars with a legacy UIKit codebase, a broken checkout flow, and no Apple Pay support. I delivered a full SwiftUI relaunch in 8 weeks — taking the App Store rating to 4.1 stars and improving D30 retention by 28%.
The challenge
The existing app was a UIKit codebase from 2018. Checkout had a ~35% abandonment rate on iOS — mostly due to a broken Apple Pay implementation and a 6-step payment form with no auto-fill support. The product team had been iterating on top of the legacy code for three years and concluded that a clean rewrite was faster than continued patching.
The approach
Completed a 2-day discovery sprint to triage the existing codebase, identify what could be reused (product catalogue API, auth layer) and what needed a clean build (checkout, navigation, design system).
Implemented SwiftUI-first architecture with a clean MVVM layer: product catalogue, search, cart, and checkout — all new. Product images and auth reused existing backend contracts.
Fixed Apple Pay integration end-to-end: PKPaymentAuthorizationController, shipping method selection, and merchant validation — tested against a real Stripe payment intent.
Built offline-first cart using local persistence with a sync queue — cart contents survive app restarts and network failures, with conflict resolution on reconnect.
Integrated push notification personalisation: abandoned cart reminders and price-drop alerts triggered by the existing backend event pipeline, handled with UNUserNotificationCenter and background fetch.
The outcome
App Store rating moved from 2.8 to 4.1 stars within 6 weeks of launch. Checkout abandonment dropped from ~35% to ~21%. D30 retention improved 28% — attributed to the offline cart persistence and push personalisation. The full delivery took 8 weeks from kickoff to App Store submission.
4.1★
App Store rating
8 wks
Kickoff to App Store
+28%
D30 retention
−14pp
Checkout abandonment
Tech stack