Recently Apple added the ability to download older versions of apps for users who are not on the newest version of the OS. To me this feels like a reaction to automatic app updating, which is new in iOS 7. At the surface this sounds like a great idea, and it is, mostly anyways, for users and for Apple.
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. The news broke to very excited users, message boards quickly filled up with comments such as, “This is actually a really big deal.” and “HOLY SHIT THIS WORKS…… Thank you Apple my iPod touch 2g is useful again!”. Users are happy, Apple is happy, developers get more downloads, so where is the problem?
No one ever told us [developers] about it. Let me rephrase that, because it sounds pretty entitled. No developer expects Apple to run this kind of stuff by them ahead of time. The problem is no one ever thought this was a possibility. The common misconception here is when an app is updated it is updated to add new features and maybe some bug fixes. These new features may require a newer version of iOS so old users are left in the cold. The truth is a lot happens under the covers during updates, API endpoints are updated, data models changed, multiplayer protocols changed, even legal issues are addressed.
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. 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.
There are solutions, none of which are in place insofar as I can tell.
1) Allow developers to specify if a previous version is still valid. Being able to mark apps as non-functional would go a long way at combatting these concerns. Currently you can only access the most up to date app (and any pending updated versions) in Apple’s portal.
2) Allow developers to remove old versions of apps, those of us that needed to modify apps for legal reasons may find ourselves in hot water when these suddenly become available again.
3) Allow developers to submit different binaries for specific versions of iOS. It would be handy to be able to submit an iOS 6 and an iOS 7 version that will appear as one in the App Store.
There are other smaller considerations that could be applied such as ignoring reviews from out of date versions, which doesn’t address the increased support load. As it stands there is not even an easy way to tell which version is the one that will be downloaded, I certainly haven’t kept track of which versions I dropped previous iOS support in.
While I always assumed that Apple had copies of all the old binaries for the apps I have submitted over the years, it never occurred to me that they may start distributing them again. A person downloading Trivium 1.0 from 2008 may be very disappointed when they believe they are getting the 2013 version.
The bigger problem is these issues aren’t new, despite everything I just said. It has always been possible for someone to have an old copy of an app in iTunes and be able to restore it, the problem is now the process is easier and first time users may get an old binary. This issue is reminiscent of Rate on Delete, negative reviews aren’t good for anyone involved, especially developers who did not plan for this new functionality.
Updated 9/19/13: Apple has announced they will be implementing solution #1 above although no roll out date has been provided. At the time of this update the functionality is not yet available.
Updated 9/20/13: As pointed out by several sources this functionality is accessed in the Rights and Pricing section of the app details. From there select “Indicate a legal issue with iCloud for this app”. I would still very much like to see the ability to submit older binary updates to fix API and security issues, right now I have the feeling that most developers are just pulling all the old versions offline, which isn’t the end result anyone wants.