Today Apple's App Store support page updated to reflect the latest iOS 8 adoption numbers:
After 41 days in the wild, iOS 8 adoption has slowed a bit and is now sitting between 52-54%. As of today, Apple says 52%, and Mixpanel has it at about 54%. Last year, iOS 7 was at around 75% by this time.
This increases the complexity for app developers since we now have to support multiple iOS version for much longer than we needed to in the past. This means it makes business sense for us to make our customers happy and not release updates to our app that renders them unusable on their devices.
This has been a battle for just about every software platform in history, and historically Apple has had great success in getting users to update at sometimes shockingly fast rates.
This year, things are slowing. The cause of this shift has been discussed at length.
I'm convinced the slow down is being almost solely caused by the (now infamous) high disk-space requirements to install the update.
To make matters worse, Apple is still selling devices with 16 GB of storage. Once you subtract the amount needed to store the files needed to run iOS itself, the user is left with about 12-13 GB (depending on the device type) for their data.
This leaves many users in a position of having to pick the least-bad of two bad choices:
- Engaging in some kind of digital age "favorite child" process where they have to pour through their device and find things they are comfortable parting with
- Simply ignore the update and move on with their lives
Guess which one they usually choose.
So that begs the question: How can Apple improve this upon on this problem and allow?
Here's a few options, and some thoughts around each:
Apple could release smaller updates more frequently throughout the year.
As a company, Apple is often thinking not just ahead, but far ahead. This options seems unlikely as this would disrupt their entire software roadmap.
Apple could vastly increase their efforts to educate more users about upgrading through iTunes on the desktop
Upgrading to iOS 8 using iTunes on a Mac or PC doesn't have the same space requirements as "full" iOS update packages are downloaded and unpacked before being applied by iTunes itself, without using any unnecessary space on the device.
Many modern iOS users aren't even aware that their devices can be interacted with by plugging into their computer. They've been conditioned by things like iOS 5's "PC-less" setup improvements as well as the smooth installation processes of the past few years of iOS releases to understand that software updates happen on your phone. This would help some of Apple's more technically inclined users, but isn't going to fix the problem.
Apple could stop selling such low storage tiers to users who probably don't understand they're buying a fairly small capacity device
I'm fairly certain Apple does this for a few reasons. They'd like to push users to buy the mid-tier device, thus earning them another $100 in revenue. They'd also like to continue to provide three price-tiers (low, medium, and high) so they can hit all the different segments of their economic and retail markets. It makes great business sense, just stinks for consumers. I don't see storage capacities in the low-tier iOS devices increasing until possibly next year, but realistically 2 years or more.
These analog solutions are obvious, but I don't think that's best approach. The problem is digital. I feel the most effective solutions may be technical in nature, with the added benefit of being mostly transparent to the user.
Apple could split up their updates into smaller chunks, and installing them one at a time
If you've ever been using a piece of software (or any gaming console in the past decade) and used a feature to perform an automatic update of that software you've probably experienced the following madness:
ZBox 1080: You need to install an update before you can do the thing
ZBox 1080: Updating ZBox...
You: "Ah good it's going fast"
ZBox 1080: Downloading Update (57%)...
You: "Nice, it's already installing"
ZBox 1080: Installing Update (99%)...
You: "Sweet it's done, now I can do the thing, wait what?"
ZBox 1080: Updating ZBox...
You: "Wait, what are you doing?"
ZBox 1080: Downloading Update 2 of 35 (Estimated Time: 90 Million Hours)...
You: *defeated slouch*
This terrible infinite update syndrome usually occurs when a user is multiple releases behind and needs to download each one in succession and apply them one after another.
This evil, terrible power could be used for good though. One could imagine Apple adjusting their packaging process to create smaller "chunk" updates that get applied one after another. They could wrap the entire process under the shroud of a single progress bar. Each would be "unpacked" and "applied" one at a time, each one cleaning up after itself before moving on. The user would only need enough free to space to handle the unpacked size of the largest single chunk update.
This one would take a non-trivial amount of engineering work and depending how it's implemented, could increase the network load significantly on the update servers (if all the chunk updates were downloaded separately).
Allow the system apps to be updated individually
It might seem surprising 7+ years after iOS's introduction, and 6+ years after the introduction of the App Store, that Apple still updates all of their system-level apps through one big single update. We iOS users update millions of apps a day through the App Store, why not use the same system to push out updates to the system apps?
This turns out not to be as straightforward or simple as you might hope. Many iOS system applications have deep ties into other parts of the system. Something as simple as the Notes app has be able to read the list of your configured Mail accounts, as well as sync to them if you choose.
I can imagine a siracusa-esque time-scale long-term plan here where Apple moved towards a modularized system like this. It does feel more like a "wouldn't it be great if someday we could..." idea.
Of course, all the countless private system-level APIs an data storage mechanisms Apple uses in their system apps would pose a bit of an issue when interacting with the App Store system. Apple might not exactly have to worry about getting rejected for using private APIs like the rest of us, but I doubt they'd just throw their apps on the App Store and call it a day.
It's much more likely that Apple would work towards introducing many more extension points and try to open up even more system-level APIs and get them ready for primetime.
There's plenty more factors Apple has to balance when trying to solve this problem. Network load, install time, not to mention all the new potential points of failure any changes here would introduce.
It's a complex problem, but one that I'm sure Apple is astutely aware of.