Advertisement

Facebook for iPhone's new 'pull to refresh' looked a little familiar

While the new "Places" GPS check-in feature got most of the attention in Facebook for iPhone's latest update, a more subtle feature made its way into the app's interface: pull to refresh. Users of the official Twitter for iPhone app, previously known as Tweetie, will recognize this UI feature right away, because Tweetie creator Loren Brichter pioneered it and even filed a patent application for it.

If you haven't had the chance to "pull to refresh," it takes advantage of the iPhone's "spring-loaded" page dragging behavior by refreshing content when you navigate to the top of a list and drag down. It's a neat UI trick, and once you use it a few times, you'll wonder why Apple didn't think of it.

Facebook thought pull to refresh was a neat trick, too ... so neat that Facebook allegedly "appropriated" some open source code in order to intro the feature on its iPhone app. Shaun Harrison of enormego writes that after digging through the Facebook app's source code, he found some very familiar entries:

"I finally found the class: TTTableHeaderDragRefreshView. I started looking over to code to see how they accomplished it, and that's when I realized it: this was our class [...] Facebook prefixed some variables, slapped their Three20 branding on it, restructured some code, but it was the same code we wrote. The same code we wrote, with zero mention of us."

The story has a happy ending, though: once the Facebook for iPhone team became aware of the misattributed code, they uploaded a new version with the correct authorship information. Awfully sporting of them; both the engineer who incorporated the code and Facebook's manager of open source efforts took the time to comment on the enormego devs' blog and apologize.

Down the road, Facebook may face an even greater hurdle with the pull to refresh UI element; if Loren Brichter is awarded a patent for pull to refresh, Facebook (and other apps) may have to pay licensing fees to incorporate it.