29 Comments

Summary:

Is your Facebook mobile app slow to update or showing old data on Android or iOS? If so, you’re not alone. I’ve noticed a degradation in the mobile application’s performance for months but I never knew exactly why it was. Until now.

facebook-loading

For the past year or so, I’ve noticed that my Facebook mobile apps have slowed down with each screen tap. I used to tap the screen and see the latest posts or photos fairly quickly. Now I see the “Loading” message more than anything else. Even worse: I’m constantly pulling the screen down to refresh the data, even when tapping a Facebook notification takes me to a supposedly updated post. I’m not sure when that behavior started, but it’s quite annoying and happens on both my Android and iOS devices.

I long suspected these problems had much to do with Facebook’s use of various Web technologies, since much of the mobile platform was built with web standards and technologies such as HTML5, surrounded by a native wrapper for Android or iOS. But I’m not a developer, so I couldn’t be sure. Now I am, thanks to Dirk de Kok’s detailed post at Mobtest, which tests mobile applications.

The gist of the problem, at least for iOS (and likely for Android as well, at least partially) is two-fold. One problem concerns HTML use with UIWebViews but without support for Nitro, which is Apple’s JavaScript engine. The second happens because the app makes different data calls for similar, but out-of-sync information. Here’s a pair of excerpts to explain:

“For a starter, caching of unchanged content cannot be controlled by the developer. The FB app downloads the whole timeline HTML every time, and it is up to the UIWebView to determine whether it needs to download images, stylesheets etc again…. Also, to communicate from the UIWebView to the native app, a Javascript bridge is needed. This is tricky stuff, slow and not really thread safe.”

“For notifications, messages and friend requests regular REST calls are done, returning XML data. First check is to see what number of new notifications are there, then the actual content is retrieved in a separate call. As far as I can tell, the Facebook service calls return inconsistent information. When you check too fast what new notifications are awaiting you, you don’t get the new information.”

I recommend reading de Kok’s entire analysis because he explains in further detail how all these moving parts are working together in a less than optimal way, illustrating the exact behaviors I’ve seen in the Facebook mobile app. I think it’s great that Facebook is adding new features and improvements on a regular basis and I understand that by using Web technologies, it can make these changes on the server side; you don’t have to update your Facebook app as a result.

But for the time being, I’m going to switch to m.facebook.com in my smartphone browser. I did some testing this afternoon and the experience is far faster, up to date and generally offers the same features as the native mobile app.

  1. Thanks for the heads up Kevin!

    Share
  2. I don’t seem to have such issues on my Facebook for BlackBerry app.

    Share
    1. Hahahaha LMAO!!!

      Share
  3. Andrew Knapp Tuesday, May 15, 2012

    Thanks for the post! Good call on using the m. app.

    Share
  4. I knew FB app was bugged for years now. Mobile site has always outperformed the app on my Android phones. Besides, I think the website is more likely to get timely fixes and updates than the app.

    Share
    1. yup, I don’t open the Facebook app in my Verizon Nexus at all. I have FB bookmarked in the stock browser, works fine for me

      Share
  5. Prosthetic Lips Tuesday, May 15, 2012

    I realized this a while ago. You don’t have as many options, some of the recent stories are hidden in favor of “top stories”, and it was a generally bad experience.

    In fact, I would suggest using the iPhone version of the page (yes, even if you are an Android user), touch.facebook.com seems to have phone-centric features quicker than m.facebook.

    Share
  6. Thank you! I’ve gotten here by accident a few times, but couldn’t figure out how to get here on purpose. And with the craptastic changes they just made, I was hating facebook on my phone. Way too slow!

    Share
  7. Best way to deal is to stop using FB entirely. Problem solved. And no I’m not being tongue in cheek…I switched to Twitter and get entirely the same “work” done, but with much more effeciency but on the web and on the app. Less info = quicker function.

    Share
  8. why do we even use apps for facebook? i have a smartphone, just lemme go to the real desktop site and not kick me to mobile!

    Share
  9. Just to be clear this is clearly all Facebook’s fault, and while there are real limitations in the native platforms, it is a failure to architect the service properly that they are running into these issues. I have little sympathy for a company with their cash to be running into these issues. They have to fix this NOW. I’ve solved these issues on apps with 1/100th their budget and it is silly for them not to fix this.

    Share
  10. James Pageau Tuesday, May 15, 2012

    Actually, nitro works in UIWebViews under iOS5. The wrapper they use is called PhoneGap.

    Share

Comments have been disabled for this post