From the author of

From the author of

One of the bits of Learning iOS Design that I am proudest of is in Chapter 10, "The Whole Experience." It’s about respect — specifically, the respect that iOS shows for users’ time and attention. In iOS, it just feels easier to focus in on one task and get really immersed in something like reading, communicating, or being productive. Part of the reason why is because of Notification Center, the unified notifications system.

Tiny Tendrils

As a rule, iOS is limited to one open app at a time — in contrast to the desktop, where you have a pretty chaotic swirl of windows, menu bar items, and miscellaneous debris competing for your attention budget all day. Notifications are the one chance your app has to communicate with users when the app itself is not open. A notification can be seen as a tiny tendril reaching out from your app, either into the foremost app or onto the black screen of a locked phone, informing the user of some reason that they might want to open up your app and take care of something. If default state of iOS is to show the user only exactly what they are interested in seeing at a given time, notifications are the exception. They can encroach a bit into the user’s awareness at any time, including times when the user is not using the device at all.

That’s a major privilege, and it’s worth keeping in mind that it is a privilege that should be handled with the proper care. iOS rightly gives users complete control over what kind of notifications each app is allowed to present. Every notification you send is a little test. As soon as a user thinks your notifications are not worth the intrusion, they can just flip a switch to turn off its ability to send them. Plenty of users don’t even have the time to do that, and they’ll take it as a reason to stop trusting you and delete your app entirely. So it’s in the interest of the survival of your app that you make your notifications as useful and as minimally bothersome as you can.

Users Are In Control

Users have a lot of power over how apps can notify them, via customization in the Notifications section of Settings. The Alert Style setting controls how notifications appear when the user is in another app (when the user is already in your app, new information should become apparent without the need for a notification):

Alerts are the old-fashioned way, where each notification takes over the center of the screen and blocks interaction until it’s dismissed. Users are unlikely to pick this unless they want to be utterly certain not to miss your notifications — which is a good sign that they’ve entrusted your app with something important to them.

Banners are the quieter, newer way, where notifications animate in from the top of the screen and block very little of the interface. (But be careful, because if several notifications happen in a row it can be a hassle to wait until they pass by and the top area of the interface becomes fully visible again.)

None is a style that allows notifications to appear in Notification Center when the user chooses to go peruse them, but doesn’t put anything on the screen right when the notification comes in.

Beyond the style, users also control whether your notifications can play sound (or vibrate) or badge the app icon. So don’t count on any particular feature to be enabled; your notifications should make sense with any permutation of these settings.

What’s The Point

Designing good notifications depends on understanding what they’re really for. They’re not for the developer’s convenience. They’re not for gushing every detail about what’s going on with the app or the online service it’s connected to. They’re a convenience for the user to get information that they really want without having to manually switch to your app and look for it.

Take a social app for instance. A notification either provides all of the information that a user needs (just knowing that someone favorited their post) or it motivates the user to switch to your app to get more information or to take some kind of action (seeing that someone replied to their post with a question, and wanting to respond). The thing is that you rarely know which of these two situations will be true — you have to plan for both.

In the case of the reply, the user will often want to immediately switch to your app and read the entirety of the message. But you can’t count on it, so you should make the text of the notification as informative as you can. The more efficient the notification, the better the user can decide whether to switch apps. What does the user care about? Probably the name of who sent the reply and as much of the message text as can fit. The name and icon of your app appear automatically in the notification to set the context, so there’s no need to waste space on identifying the app or service.

Interesting — Julie: “I’m going to be in your area next week if you want to meet up!”

In the case of a favorited post, you might expect that most users would just watch the notification go by and smile that they brightened someone’s day. But if the favorite came from an unfamiliar name, the user might want to switch to the app and find out more about just who is following their posts. If the user decides to open the app in response to a notification, it’s important that your app always opens directly to the screen that’s most relevant to that notification (In this example, probably the account info for the person who favorited the post). If several events happen at once, and they would all point to the same screen, consider condensing them into a single notification rather than polluting Notification Center with heaps of notifications.

Don’t Badger the Witness

The badge is a very simple concept (in iOS versions up to 6, at least): a number can appear on a red background attached to your app icon. The number can signify whatever you want, and you can use notifications to update it. The point is to help users guess when it is worthwhile to open your app and deal with something interesting or important. The hard part, then, is deciding what counts as interesting or important to your users.

Lots of people use badges as a signal, bouncing from app to app taking care of things until there are no badges left on their whole home screen. In their mind, a badge is a sign of work left to be done. If you rack up the badge count for frivolous reasons, users may see your app as a liar and turn off its badge entirely.

When a user opens an app with a badge on its icon, it should be apparent at the top level of the app’s hierarchy why the badge was there. Ideally, a similar red badge should exist in the app itself, in context with the element that needs attention. Likewise, it should be apparent how to get rid of the badge — usually just a matter of looking at a new item, taking a turn in a game, et cetera.

Keep It Useful

Notifications are for the user’s benefit, to help them know when they might want to switch to your app — not to coerce or force them into switching to your app when they didn’t really need to. The more respectful and unobtrusive you are with the design of your notifications, the more likely your users are to allow your app to continue sending them. Done well, notifications can be a pleasant and welcome part of an app’s user experience.