Cheating Or Good Design?

A comment on Reddit (by raygundan) points out an interesting technique Apple uses on their iOS platform: when you switch apps, the device saves a screenshot of what the last screen looks like for that app so that when you switch back again, that saved screenshot is the first thing you see. This is done to buy time for the app to fully load. Instead of showing you a blank screen or a loading screen, the device shows you a screenshot of the app. This technique works because the time it takes to load the rest of the app isn’t very long anyway, so a second of showing a screenshot that the user cannot interact with doesn’t cause confusion. What it does do is make it looks as if the app has loaded instantly, which results in a very good experience for the user.

The commenter called this technique cheating, but isn’t it simply good design? If they showed a loading screen or a blank screen then presumably that wouldn’t be cheating because there is no deception involved, i.e. you’re not pretending that the app has loaded when it hasn’t. But what about applications that only load partially? I open a website, and while the bit of page that I see has rendered I cannot scroll down because the browser is still processing something else on the page? Granted, it still says it’s loading, but I am still presented with an interface that I cannot fully interact with. Of course I would rather see that bit of the page first rather than have to wait for everything to load before it shows me anything, so the tradeoff is a good one.

I think the screenshot idea falls in the same category. Rather than rendering the interface “properly”, you show it using a screenshot. It’s acceptable because you know the usable version will load in just a second, and so you make the tradeoff of annoying the few users who jump to interact with it right that second while making the experience feel faster for 100% of the use cases. Showing the interface instead of a loading screen also gives the user the information they need to interact with it. Instead of looking at a blank page, they’re looking at the controls and figuring out what they want to do with it. Once they do, chances are the actual interface has loaded, and so they can start using the app.