I won’t argue with Matt Gemmell: his arguments in favour of supporting only the latest version of iOS are strong and quite understandable if you put yourself in the developers’ shoes for a moment. I’m not a developer myself, but I have enough knowledge to understand what they have to put up with, especially in a fast, ever-updating environment such as iOS.
At the end of his article, Gemmell adds a couple of replies he received via Twitter, which wants to address. In responding to Justin Miller (who tweeted: So you’re saying tens of millions of people should literally throw away their 2+ year old iDevices every year?), Gemmell writes:
At no point did I mention anything about throwing away iOS devices, or that you should be buying new ones every couple of years […].
[…] I didn’t say that, and nor would I — not least because it’s not what I believe. What I did say was that, as a developer, I don’t think you need to support iOS versions other than the current one and maybe the previous one (and by extension, devices that can run those versions). Keep your old devices, running old OS versions and apps, or do whatever you want with them — you just can’t reasonably expect them to be supported once it becomes unduly onerous to do so, with diminishing returns for the effort.
I still have a first-gen iPod touch here, and a couple of iPhone 3Gs. The iPod played the music for Lauren to walk down the aisle to at our wedding last month. My dad uses one of the 3Gs, and my little sister sometimes borrows the other one. They’re still alive and serving a purpose — but I don’t expect your new app to support them.
I don’t expect that either, but what happened to my wife a few months ago is nonetheless understandably frustrating. I described it at length, along with some personal observations, in a previous article — The point of no return. If you don’t want to go back and read it, here’s the relevant part:
My wife Carmen owns a 16 GB, first-generation iPod touch, and as you know it can’t be updated to iOS 4; the maximum firmware version supported is iOS 3.1.3.
The other day something quite annoying happened for the second time. There was an update available for one of the apps she has purchased and installed on her iPod. Along with other app updates, she downloaded it in iTunes. Then, as soon as she connected her iPod, iTunes performed the usual synchronisation process. When it was all over, she disconnected the iPod and went to use that app, which refused to open. After some attempts, we both figured out that the problem was that with the latest update, said app dropped support for iOS 3.x. Having now iOS 4 as a minimum requirement, it obviously can’t work on her iPod anymore.
That app cost her 3.99 Euros, but what really annoys me isn’t just a matter of money. I simply think there’s something wrong with this process.
Since then, that same thing happened with other three apps, and eventually she started using her iPod touch — which is still a perfectly working device — less and less often. This flaw in the update process has created a sense of mistrust and unreliability. And it’s not a fault of iOS developers, mind you, I’m not saying that.
After these unfortunate incidents we stopped investigating the problem. Now she has just given up on apps updates — even non-disruptive updates for applications that still support iOS 3.x. I believe the fault is in iTunes, because attempting to update an app that drops support for iOS 3.x from the device itself returns an error and prevents that potentially disruptive update from happening.
Whatever the culprit, what’s really disappointing is that, when an incident like this happens, there’s no way to retrieve or restore the previous working version of the app, at least to my knowledge. The ideal solution would be inserting a sort of smart download process in iTunes where iTunes detects which iOS device is making the request and serves the appropriate version of the app. In other words, behind the scenes, iTunes would keep the most updated version of an app and the latest version that worked, say, under iOS 3.1.3, so that customers still owning iOS devices now made obsolete could still enjoy a functioning app, being able to restore it in case something goes wrong.