Search
Goodies

Social Networks
Designs I Like
« Great iOS development references | Main | The birth of a new computer era »
Saturday
Feb122011

iOS notifications: what are the problems? [U]

This week, rumours of Apple interested in buying a small company to fix the long standing notifications problem of iOS was flowing the gate (Rumor: Apple looking to buy developer for new iOS notification system). The rumours were about buying the maker of Boxcar, an application that take advantage of iOS notifications to notify you of different type of events.  Linking this rumour to Boxcar is a patent sign of misunderstanding the problem of iOS notifications. This blog post is about exposing the real issues surrounding iOS user experience related to notifications in general.

One of the biggest announcement from Apple when it first demonstrated iOS 3 was the inclusion of push notification APIs. With these in place, for the first time, native iOS apps could generate notifications to be received by a device without having to run in the background. This was the first stage of allowing some kind of apparent multitasking on iOS. The arrival of the first apps to support this feature was delayed by many months because Apple was facing hurdles in implementing the backend infrastructures to handle the load of millions of users generating millions of notifications. Once out of the gate, the solution to notifications handling on iOS was lacking in many respects. And it came on top of an already bad situation: the phone app, the SMS app, the calendar app to name a few all generate their own notification that are not always welcomed from a user perspective.

People are usually fast at proposing things to fix problems. But in software design, user experience and user interaction, the first thing is to understand the problem in details. Here is my analysis of the iOS notification situation as of iOS 4.2. The fundamental problems with iOS notifications are few but very important:
  • notifications are obstructive to the user
  • notifications life span is way too short
  • notifications lack management control
  • notifications are not informative enough
Obstructiveness
Imagine this: you listen to a movie or a video on your iPhone and suddenly, the picture freezes (or even becomes black), the soundtrack dims down to play an alert sound. In a fraction of a second, your mental flow is disrupted. This is where you get this nicely animated modal dialog box alerting you of something: weather alert, incoming text message, twitter mention, etc. The user have to dismiss this notification in order to return to the  interrupted task. This is very distracting. To get things even worse, a rapid succession of notifications can happen at any time if many app with notification support are installed making the user experience horrible: having to dismiss a bunch of alerts that could be acknowledged later instead.
A notification while watching a video black out the picture
Short life span
Let say you leave your phone on the table for a couple of hours. When notifications are received while the device is in lock screen mode, you only see the most current one. If you happen to slide to unlock the device and cancel the move in the middle of it's normal course, you may loose the currently shown notification The only way for the user to know which app  generated a notification is by looking at the home screen for icons with a red badge. Not always effective with multipage of installed apps. It gets worse when the user have many apps with recent notifications.
Too many apps with recent notifications

Lack of control
In its current implementation, notification control is allowed on an application basis only: sound, badges, alert. This is very limited. The user cannot set quiet periods, currently this is an all or nothing situation. Having a quiet period can fix the issue of being disturbed during the night with unneeded notifications. Finally, there is no way to suspend notifications for a short period of time (before going to a meeting for example).
Lack of control on how to handle notifications
Not always informative
Some of the basic notifications are pretty useless. Take for example the missed calls example on a locked iPhone.
Lack of informative notifications, when did the calls took place?
Another example of useless notification from the calendar this time
Clearly, nobody at Apple misses calls because if they do, how can they find this informative and useful. When did this called was receive? No obvious clue unless the user open the phone.app and look at Recent tab. Too many operations.

Final important details to consider
Popup alerts are still required when the device needs full attention of the user but in the current state of affair there are way too many. So, I'm not in favour of putting all notifications aside. I'm in favour of making the user experience the best in the world of smartphones.

The other very important detail to consider is the size of the screen. On the iPhone (even on the iPad) the running application takes the whole screen. It becomes difficult to do things visually for cues of notifications. There is no much space. Apple found a solution to bring the search screen and the task switcher.

So, these are the main problems of the Apple's implementation of notifications under iOS 4. In the next blog post, I'm going to propose a few solutions that resolves these long standing issues users of iPhone are facing since day one.

References (1)

References allow you to track sources for this article, as well as articles that were written in response to this article.
  • Response
    Response: free backlinks
    [...]Building iPhone Apps - Blog - iOS notifications: what are the problems? [U][...]

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>