As an iOS developer dealing with old devices is a thorny problem. Progress in iOS marches ever onward and eventually a new version comes out which drops support for older devices. You are then faced with a choice: keep supporting that older OS and your established customers who are unable to upgrade, or abandon them.
Apple has come up with a new feature for users on older versions of iOS which allows them to download the last compatible version of your app. This is good news for users and potentially a headache for developers.
I always try to support the older OS as long as possible. If there’s a new OS feature I’d like to take advantage of it’s usually possible to do so–and make it so that feature is simply unavailable for users on an older OS version. But at some point there is a fundamental new feature you want to support that requires an architecture change to your code and means dropping that old OS.
When it does finally come time to abandon support for an OS version I always try to make sure there is one final version of my app that has a number of bug fixes and improvements that will leave these people happy until such time as they get a new device that can support the latest OS. This version of the app goes up in the app store and in the “What’s New” metadata I’ll highlight that the update is the last version to support whichever OS version is being dropped. I’ll leave this version in place for several weeks to a month–which should be ample time for my users to update.
Still, some stragglers who are lazy about updating their device might not get around to it, or some new customer with an older device might hear about my app and want to try it. Apple’s new system is going to help them out by letting them download and use my app. Hooray! This is good news for them and for me.
The one main gotcha is if that last version is a doozy–perhaps because of some nasty bugs I never got around to fixing. Undoubtedly there will be developers in this camp and some people who are unhappy with Apple’s latest move. I think this just highlights the importance of doing that final maintenance release before you drop support for an OS.
Kyle Richter (co-founder of Empirical Development) points out some additional considerations with Apple’s new service. I agree there are some pitfalls, but on balance I still think this is a win for users–as long as developers are careful to put out a high-quality final version before dropping support for an older OS version.