Skip to content
Umar ManzoorBook a call
← Case studies
AndroidArchitecture

Modernising a 1M+ user codebase without a rewrite

An app that shipped fast in year one had grown hard to change. A staged architecture migration restored velocity while holding stability — no big-bang rewrite.

~40% less boilerplate · 99.5%+ crash-free

Problem

A lifestyle and rewards platform serving 1M+ users had reached the point every successful app reaches: the architecture that made version one fast was now fighting the team. Changes rippled unpredictably, features slowed, and engineers avoided the riskiest parts of the code.

Solution

Not a rewrite — a staged migration, measured against stability the whole way. Move the app from MVP toward MVVM and from XML layouts toward Jetpack Compose incrementally, proving each stage in production before moving on.

Technical challenges

  • 1M+ active users meant stability could not regress for a single release.
  • Multiple teams shipped in parallel; the codebase couldn't freeze.
  • Business needed continuous delivery throughout — no feature gap.

Architecture decisions

  • Introduced clear architectural boundaries so business logic and UI could evolve and be tested independently.
  • Migrated UI to Jetpack Compose feature by feature behind the existing navigation.
  • Guarded every stage with crash and performance monitoring so regressions were caught before a store review, not after.

Business impact

The real win was organisational: teams could ship in parallel again, and the codebase stopped getting harder to change every quarter — protecting delivery speed as the product grew.

Results

  • Boilerplate reduced ~40%.
  • Sub-2-second screen loads and a 99.5%+ crash-free rate held throughout.
  • Parallel feature development unblocked across teams.

Lessons learned

Full rewrites are where good companies lose a year. Staged, reversible migration — measured against real stability metrics — delivers the same modernisation with a fraction of the risk.

Facing something similar?

If your mobile app is slow, unstable, or hard to change, a short call is the fastest way to find out whether I can help.

Book a call