Nick Arnott, in a good piece on why the pull-to-refresh gesture is still valuable in app design:
Pull-to-refresh is about giving users control. Apps should handle refreshing data in a sensible matter wherever possible. Developers should make informed decisions on which feeds should refresh how frequently, and for the most part this isn’t something users should have to worry about. However, many of us are familiar with the scenario where an app is displaying what appears to be stale data and it’s not immediately clear why. Maybe the app isn’t refreshing like it’s supposed to. Maybe the app isn’t refreshing as frequently as you want it to. Maybe the app tried to refresh, but the connection timed out. Maybe the app tried to refresh, but the server had an error. There are a lot of things that can go wrong when refreshing data, particularly on mobile platforms.
When a user is staring at an app with what appears to be old data, pull-to-refresh is one of the few mechanisms that can give them some control over the situation. Automatic refresh strategies are transparent to users which means when problems occur, no error should be shown to the user (most of the time). Pull-to-refresh is an explicit user action which means if a problem occurs, feedback to the user is warranted and expected. If an app is failing to update in the background, it can silently fail and periodically retry to refresh the data. But if a user notices this, they should be able to manually attempt to refresh the data and if there is an error, see it. Even when data is properly refreshing, pull-to-refresh can offer reassurance to a user who’s not sure if it is. If the most recent tweet I see in Tweetbot in the middle of the day is 20 minutes old, I’m inclined to think my timeline hasn’t refreshed recently. Pull-to-refresh enables me to ensure my timeline is up-to-date, while also providing the perfect place for Tweetbot to display a last updated timestamp.
To illustrate just how important (and useful) pull-to-refresh truly is: for the longest time, Instagram had an iOS-standard Refresh button in the top right corner of the feed view. You had to actually tap the button to manually fetch new data; it made checking Instagram kind of a chore. Thankfully, Instagram added pull-to-refresh in a recent update. Couple it with iOS 7’s background updates API, and checking Instagram is no longer a slow chore; it’s quick and fun.
The moral of the story being that I love pull-to-refresh for the reasons Arnott articulates.