Why Facebook’s mobile apps suck: A developer’s view

I’ll admit it: Contrary to my own expectations I’ve grown to  use Facebook much more than I thought I would have — mainly because it’s the most common point of connection across my many social and interest circles. And I use it more despite Facebook’s persistently horrid user interface.

But Facebook is especially horrendous on mobile. For instance, the Facebook Android app won’t let me share items from other people’s streams, the way the Facebook standard website does.  Also, on the Facebook Android app I can’t tag someone in a status update (like saying “Joe Schmoe loves this kind of sushi.”) — I can only indicate whether I’m “with” someone, which often isn’t the case.

Argh. Gah….

Anyway, today while I’m researching and writing about Facebook’s various mobile problems, I found Kevin C. Tofel’s May 15 GigaOm post: Does your Facebook mobile app suck? here’s why

He summarized findings published in the Mobtest blog. These only looked at problems with Facebook’s iOS app, but they’re interesting even though I’m an Android user. In a nutshell, Facebook’s app relies heavily on web technology (HTML) to deliver content.  There are good reasons for this, but on iOS devices it causes problems.

Here’s how Mobtest summed it up:

Why would Facebook use HTML technology inside a native iOS app?

HTML is easier for displaying fluid content. Objective-C really sucks when it comes to fluid display. An image with text around it, buttons with varying text labels are really hard to create yourself in Objective-C as you have to calculate dimensions and positions of all elements yourself. In particular for a timeline HTML will be much easier.

Creates code that can be shared across different platforms. iOS, Android, BlackBerry, Windows Phone are all different technologies and a developer’s nightmare. Sharing some content/functionality in the form of HTML makes sense.

HTML is much more in line with Facebook’s continuous deployment process. 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.

They can get away with it. Yes Facebook is not a bank, there are no other iOS FB apps out there and we will still use the service as it has a virtual monopoly on social networking with 900 million users now. We just have to suck it up.

Feature phones is where growth is. A very high percentage of iPhone and Android users already have the Facebook app installed. The next frontier is feature phones, in particular in non-western parts of the world. These new users will first encounter Facebook on their mobile, and it will not be a shining iPhone.

OK, that doesn’t explain the boneheaded lack of key features in Facebook’s Android app that I noted, but it could help explain some of the poor performance I’ve experienced — slow load times, lagging updates and push notifications, and lots and lots of crashes.

Tofel, an iPhone user, closed his GigaOm post with this observation:

…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.