views:

156

answers:

2

I have been an avid fan of lazy loading but yesterday I was talking with a fellow programmer who showed me another application and expressed how happy he was about the initial waiting time that the application takes (Android Marketplace to be precise) to load up the list and allow him to scroll smoothly than implement lazy loading and make his life miserable...

Though I can get lazy loading to work using background downloading of images to make the whole feel uninterrupted, I still am not sure which is the preferred design methodology... Any suggestions?

+1  A: 

A major component of UI design is to make the UI feel response. Now, realistically, there is always going to be waiting time - applications have to load, data needs to be populated, etc. The trick here is to always give the user feedback that something is being accomplished and, of course, to not spend too much time at loading screens (I'm looking at you PS1!).

In the case of your application, I would concur with your friend that lazy loading can be somewhat annoying. Nobody wants the screen to stutter/pause as they scroll (as an example). In addition to this, people have become accustomed to some waiting time for applications to load a computer. But, there is a fine line between "I'm willing to wait" and "screw this, I'm not using this app."

Of course, at some point, it does become personal preference of the way of doing this. This is where receiving feedback from your users is a necessity (it's not called user interface design for nothing).

JasCav
Thanks... That's a really useful suggestion...
Legend
+1  A: 

I am in favor of a hybrid. The information needed for a user interface can often be separated in two:

  • Textual information.
  • Visual information.

I always try to preload the textual information, so that I get a user interface that the user can begin interacting with. And then I begin lazily loading visual information on background threads.

If the user interface needs to be stalled, always show a progress indicator, even if it is an determined indicator. The placebo effect of a user interface that is at least moving can not be underestimated. Perceived responsiveness can even be better than actual responsiveness.

PeyloW
Interesting... I actually did this unintentionally... In my design, there is an image and some associated text... I'm loading all text at once but to load the image, I'm spawning a background thread to get it... For the image, I'm just using a placeholder from the resources..
Legend