A payments app rebuilt in one quarter
Replaced an ageing hybrid app with native iOS and Android clients, a shared design system, and a release train that ships every Thursday.
1.9s
cold start, down from 6.2s
+37%
weekly active users
4.8
App Store rating
The problem
The hybrid app took six seconds to become usable, and store reviews said so. Releases were quarterly and painful, so bugs lived for months. The team knew a rewrite was needed but had been told by two previous agencies that it would take a year.
What we did
01
Rewrite the shell, keep the backend
We did not touch their payments core. The rewrite was strictly the client layer, behind the existing GraphQL contract — which is why a quarter was realistic where a year had been quoted.
02
One design system, two native implementations
Tokens, components and motion specs defined once, implemented natively in SwiftUI and Jetpack Compose. Designers reviewed both builds against the same spec rather than two divergent interpretations.
03
A release train, not a release event
Automated pipelines, phased rollouts and crash budgets. Shipping every Thursday made each release small enough to be uneventful, which is the only way releases stop being frightening.
04
Accessibility and compliance as acceptance criteria
Screen reader flows, dynamic type and contrast were part of the definition of done — not a remediation project after launch.
Where it landed
Cold start dropped from 6.2 to 1.9 seconds and the store rating recovered from 3.1 to 4.8 within two release cycles. Weekly active users rose 37% without any change in marketing spend — the app had simply stopped being unpleasant to open.
“Thursday releases sounded reckless. Twelve months later we have not rolled one back.”
Details
Engagement
One quarter, two platforms
Technology
Next step
Have a problem shaped like this one?
Tell us where you are stuck. We will tell you whether it is a six-week job or a six-month one — before you commit to either.