Banking · 18 weeks to phased rollout
Rebuilding a bank's mobile app fully native, 4.7 stars later
A ground-up native rebuild in Swift and Kotlin for a credit union stuck on a 2.9-star white-label app: biometric login, instant transfers, and a penetration test passed with zero critical findings.
- store rating, up from 2.9
- 4.7
- store rating, up from 2.9
- critical findings in independent pen test
- 0
- critical findings in independent pen test
- cold start to usable balance screen
- 1.1 s
- cold start to usable balance screen
The challenge
- Client
- Regional credit union
- Services
- Mobile Apps, Custom Software, DevOps & Platform
- Timeline
- 18 weeks to phased rollout
The credit union's white-label app was the number one complaint in every member survey: eight-second launches, logouts mid-transfer, and a login flow that fought password managers. Members were choosing big banks for the app alone, and the vendor's roadmap had no fixes in sight.
Banking raises the bar in two directions at once: the app must feel instant and native, and it must survive a hostile security review. The board approved the rebuild on one condition, an independent penetration test before launch.
What we did
The approach, decision by decision
- 01
Went fully native on both platforms
Swift and SwiftUI on iOS, Kotlin and Jetpack Compose on Android. For an app members open daily, platform-native performance, biometrics, and accessibility were worth two codebases.
- 02
Security engineered in, then attacked
Certificate pinning, hardware-backed key storage, jailbreak detection, and session binding, then an external red team spent two weeks trying to break it before members ever saw it.
- 03
Rolled out by member cohort, not big bang
Staff first, then 5% of members, then all, with crash rates and support tickets gating each stage. The old app stayed live until the numbers proved the new one out.
The results
- Store rating climbed from 2.9 to 4.7 within four months of full rollout.
- Independent penetration test passed with zero critical or high findings.
- Cold start to usable balance screen in 1.1 seconds, down from eight.
- Mobile logins up 63% as members stopped avoiding the app.
Built with
- Swift
- SwiftUI
- Kotlin
- Jetpack Compose
- Go
- PostgreSQL
Keep reading
More case studies
Fintech · Consumer lending fintech
Cutting loan decisions from 4 days to 7 minutes
A digital lending platform with automated underwriting that took loan decisions from a 4-day manual review to a 7-minute automated flow.
Read case studyLogistics · Freight operations startup
Scaling a logistics SaaS from zero to 50,000 shipments a month
A multi-tenant freight management platform launched in 12 weeks, now processing 50,000+ shipments a month across three markets.
Read case studyYour project could be the next case study
Tell us the metric you need to move. We'll scope the build that moves it: fixed price, weekly demos, results you can publish.
We reply within 1 business day.