Why is Facebook app for iPhone so slow to load the content?

The predominant theory as to why the current Facebook app for iOS is so sluggish is that the app:

  1. suffers from its heavy use of JavaScript in a UIWebView component which does not currently benefit from the "Nitro" Javascript engine which is available to Mobile Safari
  2. is poorly designed

The app uses very little native code, and thus most of your interaction takes place within a UIWebView displaying HTML and executing Javascript.

Essentially, anywhere where an app is displaying something that looks and acts like it's "embedding a web browser", that's a UIWebView.

In very simple terms, the Nitro Javascript engine makes Javascript "faster".

iOS 4.3 brought the Nitro engine to Mobile Safari, and IOS 5 brought the Nitro engine to web shortcuts launched from the home screen. This is one potential reason why your use of Facebook within Mobile Safari seems so much more responsive.

As of iOS 5.1, UIWebView does not benefit from the Nitro Javascript engine.

This issue has been recently discussed on the Mobtest blog, "Here’s why the Facebook iOS app is so bad (UIWebViews and no Nitro)" with a number of comments in the related Hacker News thread.

Within the current app, Facebook has recently increased their promotion of additional iOS apps:

  • Facebook Messenger
  • Facebook Pages Manager
  • Facebook Camera

These apps -- ranging from "old news" to "brand new" -- seem to do a good job of focusing on doing a single Facebook-related task well, in some cases adding support for something which the general Facebook iOS app does not even support.