Platinum Partner
java,mobile

Pull-to-Refresh, or Not?


Cyril Mottier from the GreenDroid fame wrote an insightful and thought provoking article about pull-to-refresh on Android. Read the full article here: “Pull-to-refresh”: an anti UI pattern on Android.

Cyril brings up a lot of good points and they are very much worth considering when building apps. On the other hand I personally don't completely agree with all of his points. The post has triggered an interesting discussion over at Google+. My comment in the discussion thread bellow. Head to G+ for your contribution to the discussion about pull-to-refresh on Android.

My comment after the jump...
Juhani Lehtimäki  -  Nice article but I'm one of those people you referred in the conclusion and I completely disagree :)

While you have good points I don't think they all aren't that meaningful and I'd like to present some counter arguments to your points.

You say that the gesture is invisible. While it is true that it is invisible I do thing it is very easily discoverable on lists that shoe newest information on top. The natural way to see if there's more is to try to scroll more which will automatically expose the user to the functionality. There's no need to be a techie. Also, the Android's way of showing list end doesn't have relevance, in my opinion, with pull-to-refresh. Even on iOS the pull to refresh is not associated with the bounce. You are pulling an extra element to view.

By far the biggest thing I have to be on use of pull-to-refresh side is the same reason I strongly advocate use of swiping gesture for moving between tabs. Pull-to-refresh is an action that can be performed in any place of the UI. It does not require reaching for an icon in action bar.

I also don't think that having to be on top of the list is a downside. When tapping refresh you need to scroll up anyways to see the new items (apps should not behave like G+ app that springs you to the top when there are new items).

Published at DZone with permission of {{ articles[0].authors[0].realName }}, DZone MVB. (source)

Opinions expressed by DZone contributors are their own.

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}