In the early hours today, a user on Reddit discovered that Apple had updated the App Store to allow users on old iOS versions to download the ‘last known compatible‘ version of apps. At first glance, this is a great feature and should benefit customers with devices stuck on old versions of iOS.
But the opaque nature of how the feature is implemented for developers raises questions and could cause some problems for users too.
The way the feature works is actually very simple and seamless for the user. If a user has a device that only supports an old version of iOS — say an iPhone 3GS on iOS 6 — and tries to download a new version app which has gone iOS 7 only, it will get the last viable version of the app. So the last edition uploaded by the developer that supported iOS 6. There’s no fuss, the user just gets a version that works.
That’s actually pretty clever, and should eliminate a lot of the reluctance by some developers to adopt iOS 7 technologies immediately. Many developers that I’ve spoken to are also planning on shipping iOS 7-only versions of their apps as well. This feature will also benefit them as those old hardware users will still be able to download and use the old versions of their apps.
And, if one takes a bit more cynical tack, you could also think about this as a hedging bet by Apple — just in case iOS 7 adoption rates aren’t as quick as they have been in the past. Those early bird developers won’t be left in the lurch.
The issues with the process for developers were recognized quickly by some like Dragon Forged’s Kyle Richter.
“The likelihood of any complex app, especially anything API driven, working after several years of neglect are slim. Those that do work may be incredibly unreliable and buggy,” says Richter. “Where does this leave things? Users will blame the developers for releasing substandard products, because the average user doesn’t understand the process of software development. This will result in apps being reviewed poorly and an increased support load for developers.”
To give you a brief example, any old version of Your Favorite Twitter Client that hasn’t been updated to work with the new v1.1 API will be very buggy or broken completely if you try to download it on an old version of iOS.
Sources in the developer community have confirmed to us that there is no option available in Apple’s iTunes Connect dashboard that allows a developer to see which version of their apps are being served to which iOS versions. That opacity alone has the potential to confuse customer support issues, as old versions of the app may very well contain bugs or issues that have gone un-addressed as developers move on to the latest versions of iOS.
But there is also no way for developers to re-upload old versions of the apps with those issues fixed. Simply put, a user on an old version of iOS could download an app with issues that are impossible for a developer to ever fix. You can see the nightmare scenario that is cropping up in many developer’s minds here.
And sources that are familiar with the system used to roll out this ‘app resurrection’ feature have confirmed that this is the way that the system works. There will be no way for developers to access the version used or to upload new binaries to fix old problems, nor any way to ‘kill off’ old buggy versions.
It’s not clear, but seems very likely, that Apple has stored all of the old versions of apps submitted by developers, enabling them to implement this feature.
It’s very important to note that the vector for problems is narrowed by a couple of factors. First, iOS adoption has always been very high. Something like 80-90% of iOS users (which were capable of doing so) had upgraded to iOS 6 within the first week or two. If iOS 7’s launch goes off well, the majority of devices from the iPhone 4 and up will be running the new OS very quickly, eliminating the need for these resurrected apps.
That still leaves whatever percentage are unwilling or unable to update. This includes users of the iPhone (there are still some), iPhone 3G, iPhone 3GS, iPod touch first through 4th generation and original iPad.
While iPod touch users stand to gain the most from this new feature, iPhone and iPad users also get a nice boost to usability for old devices. And they get it without any complex user interaction. They just download the new app from the App Store and get whatever edition sill runs on iOS.
Unfortunately, the developers of those apps don’t get quite the same treatment, and are handed a bit of a raw deal here. A couple of straightforward additions to the iTunes connect dashboard would enable them to identify the exact versions of old apps that are causing problems, and even to upload versions of apps specifically for old devices.
That doesn’t look like it’s going to be the case for now, but one can always hope.
“It is no secret that developers are the bottom of the pecking order, first and foremost Apple cares about Apple, then about consumer users, and finally developers,” says Richter. And that statement appears to be accurate in this case, where the new system improves download rates for Apple and customer experience for the user, but could cause major support issues for its developers.