Modernize mobile apps while the roadmap keeps moving
Modernization has to fit around feature work, support issues, store deadlines, OS updates, and urgent fixes.
Modernization has to fit around feature work, support issues, store deadlines, OS updates, and urgent fixes.
Most production mobile apps do not get a clean rewrite window.
The team still has roadmap commitments, support issues, store deadlines, OS updates, dependency changes, and the occasional urgent fix. A modernization plan that ignores that calendar will not last long.
The approach I use is incremental:
This keeps modernization attached to delivery.
There is a tradeoff. Incremental migration means the codebase will hold two patterns for a while. UIKit and SwiftUI may coexist. XML layouts and Jetpack Compose may coexist. Java and Kotlin may coexist longer than anyone likes.
That is acceptable if the boundaries are clear. It is dangerous when every file invents its own transition plan.
The goal is not to make the codebase look modern in one impressive moment. The goal is to make the next change cheaper, safer, and easier to review than the last one.