iPhone Applications and Start Screens

Have you ever launched the Notes application on your iPhone, tried to open a note, and wondered why the application would not respond? Here's the reason: iPhone apps can show an image while they're loading, and Apple has decided to show an image of how the application looked the last time you used it. So you weren't actually looking at your notes; you were looking at an image of your notes, and no amount of tapping could possibly have caused a note to open.

You can not figure out when Notes has finished loading, other than by frantically dragging around the screen until the application starts responding.

There's a lot of discussion going on about what kind of image applications should show while they are launching1. When deciding what image to show, you have to consider what the image tells the application's user.

Here's what Apple's image tells the iPhone's user:

Notes.app's Start Screen

The application is basically making the user look like a fool for trying to use a picture of an application.

Another popular approach is to show a logo or a similar "please wait" image. What is this telling the user?

A Fancy Start Screen

It doesn't matter that showing the logo is not the reason why the user has to wait; his perception is that the logo makes him wait.

I should also point out that these types of start screens go against Apple's iPhone Human Interface Guidelines, which say:

It's important to emphasize that the reason to supply a launch image is to improve user experience; it is not an opportunity to provide:

  • An "application entry experience," such as a splash screen
  • An About window
  • Branding elements, unless they are a static part of your application's first screen

Because users are likely to switch among applications frequently and quickly, you should make every effort to cut launch time to a minimum, and you should design a launch image that downplays the experience rather than drawing attention to it.

So do avoid these types of start screens.2

A third popular approach is to show a generic user interface which makes it obvious that the application is loading. This is the actual start image shown by the fantastic Instapaper iPhone application:

A Non-Fancy Start Screen

Now we're finally getting somewhere. This is a pretty reasonable start screen: It makes it obvious that the application is not yet usable, and it makes it obvious that the application is busy working on the user's behalf instead of needlessly interrupting him.

While Apple's iPhone HIG tells developers to avoid text in start screens since start screens can't be translated, I think in this particular case, the "Loading..." label is quite universally understandable.

But it's not quite the best solution yet. While iPhone applications from developers outside of Apple can't have dynamic start screens3, the best solution would be to show the application's previous state and point out that the application is still loading:

Improved Notes.app Start Screen

In addition to explaining to the user why he has to wait, this gives him some context; it reminds him of what he was working on the last time he used the application, and it tells him what state the application will be in once it has finished loading.

  1. For example on Daring Fireball here and here↩︎

  2. These kinds of start screens may be appropriate for certain types of games, though, where displaying the game's normal UI may make no sense. ↩︎

  3. Unless they're willing to settle for a slightly hack-ish solution↩︎

If you require a short url to link to this article, please use http://ignco.de/63

designed for use cover

But wait, there's more!

Want to read more like this? Buy my book's second edition! Designed for Use: Create Usable Interfaces for Applications and the Web is now available DRM-free directly from The Pragmatic Programmers. Or you can get it on Amazon, where it's also available in Chinese and Japanese.