It surprises me that the iPhone has such a clunky update mechanism for apps. Users have to manually choose to install updates, often putting it off due to laziness. In an interesting twist, "Update All" stops you from using any of the apps that are queued to be updated.

Updating...

Updating...

"Dude, if you'd update more frequently, it wouldn't block so many apps."

"If it didn't block so many, I'd update more frequently!"

The real question is: why? Why make people manage their own updates? It feels like filling out paperwork--very un-Apple-like.

It's also surprising, given how much Apple cares about the quality of its app ecosystem. Slower updates hurt developers, making it take longer to get new code in people’s hands. They also make the average installed iOS app buggier and less functional, since it’s likely to be out of date by a small fraction.

More to the point, Apple gains nothing from this system. The approval process slows down updates too, but at least that gives them the (however weak) benefits of standards control. This process just slows down updates with no benefit to anyone.

Let's design something that's more in line with the iOS philosophy.

Start with the marketing.

"Never micro-manage updates again. In iOS 5.X, we automatically download updates whenever you're connected to WiFi or your computer, and we install them when your phone is locked."

Now, details.

The perfect system does it all behind-the-scenes. The trick is to avoid aggravating the user by wasting their precious time, battery life, or disk space.

We need to separate "downloading" from "upgrading". These are two different types of activities with different specs and requirements. Downloading is slow, but can run in the background. Installing is faster, but it blocks the user from using the app.

Housecleaning cart

Installing new versions needs to be like hotel housecleaning: it should run when you're likely to be away. We can achieve this by waiting for your phone to be locked for a while, and upgrading apps that haven't been used recently. (Past hour?) This isn't fail-safe but should cut your chances of running into the upgrader.

Remember: we work around the user. If they're using an app that we have an update ready for, don't bug them. Just wait quietly for them to finish.

Downloading is trickier. If we download just one app and wait until the conditions above to install it, we could be waiting for a while. Pre-downloading several will speed this up immeasurably (one of those apps will be inactive, hopefully), but it would take up more disk space. Be sure to give the space up if anyone needs it.

Everyone sleeps eventually. Many charge their phone when they sleep, and have WiFi -- a perfect combination for updating, since it gives us more bandwidth, time, and power than we could ever need. These wonderful people will always wake up to a fully updated phone.

We can also update during iTunes syncing. It's logical and expected, though it may not last long enough to get everything. Your iTunes installation could possibly pre-fetch updates too.

Power management is a tough call. We could make this process run solely when the phone is plugged in--but I fear that could result in some frustrating edge cases blocking it. (Charging without internet, followed by internet without charging?) Allowing either part of the process to run, as long as the phone has at least 90% battery life, would alleviate those cases.

Then again, iCloud backups require the phone to be plugged in, and they happen often enough. You probably don't see this dialog too often:

iCloud backup not happening...

In the end, though, the phone wins. Between those scenarios, you should automatically have all updates installed within 2 to 3 days. There are enough independent combinations of power, WiFi, and time that this process can work unobtrusively.

And when the phone wins, everyone wins. Users get up-to-date apps and a simpler experience; developers can push their updates out faster; and Apple enjoys a tighter, higher-quality app ecosystem.

iOS 5.1's Camera Button

March 11th, 2012

A nice little change made by Apple in iOS 5.1 demonstrates an important part of user interface design: transitioning.

Prior to iOS 5, the iPhone's lock screen had no "camera" button. And Apple decided that it really needed one—too many spontaneous moments were lost by forcing people to unlock their phone and find the camera app.

So, they made double-tapping the lock screen do just that.

iOS 5 camera flow

Problem was, this extra mode was just a bit unobvious. Most likely you would stumble upon it accidentally. It also reverted automatically on a timer, making it seem unpredictable. Last of all, it was cumbersome.

So in iOS 5.1, Apple once again redid the design. Instead of pressing a hidden button, you now simply touch and swipe the camera icon, now always shown, to reveal the camera below.

iOS 5.1 camera flow

And it's great! It's easier to activate than the button, it's less susceptible to butt-dialing, it's much more obvious and easier to discover, and it's faster. Good job, Apple.

So, we're done, right? Living happily ever after? Riding off into the sunset?

The end of the Last Crusade

No. We're not done! NOT DONE DON'T CLOSE THIS TAB YET!

What about the existing users?

"What users?" you ask. (You're still a little shaken up from being yelled at.)

The users who were used to the old design, the ones who will try and treat the new icon like a button!

"Oh yeah," you say. "Ooops."

In fact, this new design has the possibility to be disastrous. What happens if you try to tap a swipe zone, as if it were a button? Nothing; it'll stay inert. What happens if you're an iOS 5 user and you upgrade? The camera button will seem completely broken! That's not good.

See, this is a typical mistake UI designers fall into: they redesign their UI but forget to provide a graceful transition for the old users, which makes them upset, and—what's that?

Oh. Apple's already one step ahead of us. Watch what happens when you tap the button:

Indeed, it makes the lock screen do cute a little animated bounce, popping up for a few seconds to reveal the camera controls below, before settling back down. Just enough to show that the camera is now "under" the lock screen.

The new bump.

And it works—iPhone users are well-versed in the "slide to reveal" trick, since it's used for the Notification Center, so you learn the new behavior pretty quickly. Slick, simple, and fast.

It's a small little change, but it's a good demonstration of how to guide people through the evolution of your user interface. Good transitions like these are smooth, easy, forgettable. Rough ones make people long for the old version.

Office 2010

© 2011 Phillip Cohen