These Are The Technical Reasons Why Facebook’s iOS App Is So Terrible

By

It's not just carelessness and ineptitude that makes this app so terrible.
It's not just carelessness and ineptitude that makes this app so terrible.

Facebook’s iOS app is terrible.

That’s not a matter of opinion: it’s fact. It’s a festering pile of an app, with an average 2 star rating on the US iTunes App Srore.

The app’s slow. The notifications don’t work. The whole thing’s buggy. In every way imaginable, if you open Mobile Safari and type in facebook.com, you’ll have a better experience.

How could a company like Facebook that sees so much of its traffic come from mobile sources release such a terrible, unuseable app? And why hasn’t it gotten better?

As it turns out, some of it’s due to the inherent nature of Facebook, which is “move fast and break things.” Some of it’s due to bugs. And some of it’s because the only alternative is to wait for Apple to approve every change Facebook makes to its system.

Over at the Mobtest blog, they took the Facebook iOS app and did some packet sniffing to figure out just why the app had so many rudimentary problems displaying things like notifications and timelines when the Mobile Safari version runs just fine.

The post itself is a little technojargony, but what it comes down to is that the Facebook iOS app is an Objective C wrapper around Facebook’s raw HTML data, using iOS’s UIWebView component, which allows devs to display a web page in an app.

UIWebview is also slow. Very slow. It doesn’t have access to Mobile Safari’s blistering Nitro javascript engine, making it slower than loading up Facebook in the native browser. Worse, it’s absolutely junk at figuring out what it needs to download versus what it’s already got on hand, leading the app to redownload your entire timeline each and every time it loads itself, instead of just the chunks it needs.

Why would Facebook have its app work this way? Partly it’s because the web site is in HTML, and HTML can be displayed across Blackberries, Windows Phones, Android devices, etc.

Why doesn’t Facebook just use Objective C? A big part of it is that Objective C is actually rubbish at doing fluid layout thinks like having an image with text around it, or buttons with different kinds of text labels. What it mostly comes down to, though, is Facebook is a constantly evolving product across multiple platforms, including the desktop, and HTML is much more in-line with Facebook’s deployment process, as Mobtest explains:

FB developers are responsible for their own QA, and part of that is to push code out to a limited set of servers, see results and then push it out to more and do this each day if not more often. With Apple taking as least a week of review, rolling back a code change is a nightmare.

So there you go. These are all the technical reasons why you should probably delete that rubbish Facebook app and just use a bookmark in Safari instead.

Source: Mobtest
Via: Reddit

Newsletters

Daily round-ups or a weekly refresher, straight from Cult of Mac to your inbox.

  • The Weekender

    The week's best Apple news, reviews and how-tos from Cult of Mac, every Saturday morning. Our readers say: "Thank you guys for always posting cool stuff" -- Vaughn Nevins. "Very informative" -- Kenly Xavier.