In 2015, few apps had force upgrading mechanisms in place. Nearing 2021, most mature apps have put this approach in place, recognizing the need to force retire old versions of the app.
Old app versions might stop working when a backend API is retired, and they might be expensive to test, support and keep backwards compatible.
The catch with force upgrade is you need to build it much earlier than when you plan to use it. You can not safely retire app versions without a force update messaging mechanism in place. This diagram shows the problem that first-time app developers face:
Once a force update solution is in place, you do need to test it in production, to make sure it works. Some companies make the mistake of building forced update support, but then not using it for years. By the time it’s time for a forced update, they will have little confidence whether it will actually work.
From Injy: at Convoy, some of the carriers have super old phones and newer versions of the app with new JS Core won’t even work on their phones! Situations like these make forced upgrades a complicated issue with business implications.
Building Mobile Apps at Scale
"An essential read for anyone working with mobile apps. Not just for mobile engineers - but also on the backend or web teams. The book is full of insights coming from someone who has done engineering at scale."
- Ruj Sabya, formerly Sr Engineering Manager @ Flipkart