At the bottom of a long list, put a button that loads and appends more items to the list.
You need to show long lists of email messages, search results, an archive of articles or blog posts, or anything else that is effectively “bottomless.”
Users are likely to find desired items near the top, but they sometimes need to search further.
The initial loading of a screenful or two of items is fast, and the user doesn’t get stuck waiting for a very long initial page load before she sees anything useful.
Each subsequent loading of a new chunk of items is also fast, and it’s under user control— the user decides when (and whether) she needs to load more items.
Since the new items are just appended to the current page, the user never has to context- shift by going to a new page to see new items, as she would with paginated search results.
When the page or list is initially sent to the mobile device, truncate the list at a reasonable length. That length will vary greatly with item size, download time, and the user’s goal—is she reading everything (as with Facebook), or just scanning a large number of items to find the one she wants (as with search results)?
At the bottom of the scrolled page, put a button that lets the user load and show more items. Let the user know how many more will be loaded.
Alternatively, you could use no button at all. After the user has loaded and can view the first chunk of items, silently start loading the next chunk. Append them to the visible list when they’re ready, and the user has scrolled down to the end of the original list. (This is your clue that the user may want to see more. If the user doesn’t scroll down, don’t bother getting more items.)
In software engineering, this well-known approach to managing lists of undefined length is often called lazy loading.
Several iPhone applications use Infinite Lists, including Mail, as well as iTunes and third-party apps such as Facebook. The iTunes button only loads 10 more items, which seems like too small a number for an eager music listener, but the Mail app loads many screenfuls of new messages; it seems to balance download time and quantity fairly well. The Facebook app, like the full-size Facebook page, loads up the first several pages of updates and then lets the user load more.
You can also do this with a web page. Gmail Buzz loads a few screenfuls of updates and then offers a “Load more” button; so does Mashable.