Whenever you hear someone talking about Facebook's mobile app, the most common complaint is always how slow it is. Even your news feed can take what feels like an age to load, and that's before you've started navigating through your events and photos of friends.
The reason for this is that the Facebook app uses HTML5, so it doesn't perform as well as other apps which are written natively for a particular platform. HTML5 offers Facebook great flexibility, as the development team can alter and push new code at their will without being restricted by the app approval process of whatever platform they may develop for.
Unfortunately for users, this results in an app which isn't as fast as one that is written natively, and Facebook finally listened to its users and pushed an update for the iPhone app yesterday which has been written in Objective-C. TechCrunch reported that the updated app is now 2x faster than the previous version, and "remarkably responsive, moving instantly at the slightest flick of a finger with a high frame rate, and the navigation sidebar slides out much more crisply, too."
Now that the iPhone app has been completed and launched, the development team is focused on the launch of the next version of their Android app. The Director of Mobile Engineering at Facebook took to reddit yesterday to answer some questions that users had about the next version of the app, and denied rumors that employees are being forced to use Android just to see how bad the app really is. Here are some of the highlights...
FB: Facebook is committed to both Android and iOS, and you've now seen what we can do. Stay tuned. (There are things in the Android app that aren't in the iOS one today, like mentions in posts and comments, photo multi-upload, event creation. Since version 1.9 the Android app has tested faster than the iOS one, but FB-iOS 5.0 obviously changes the game.)
Android presents some unique challenges for developers, especially those with a large user base, but we do and will power through them. A lot of time is spent dealing with device-specific issues and limits, and you really have to fight with the toolkit to get iPhone-smooth interactions. Some vendors have a different HTTP stack (!), none implement the Camera APIs consistently, and reliability of hardware acceleration is...imperfect, GC pauses are terrible, lots of the toolkit insists on doing real work on the UI thread and allocating recreationally. On iOS you can test on 5 devices and basically have the market covered. We have to test on many dozens to get to the top 1/3 of our users, and then the tail starts to get really long.
Q: Do you know when we could expect a native app too? I realise you probably can't give away too much but are we talking weeks? Months?
A: Nobody is more excited about the state of our current development version than we are, and we will get it to users as soon as we can. One of our awesome PR people is standing next to me (10,000 miles away) with a gun (frowny face), so I can't say more. Also, I have been doing software 20 years too long to make estimates in public. Experience and quality determine the time. I am utterly confident that you'll find it worth the wait, and I wish I could give it to you today.
Q: Pretty much everyone I know has problems with the app even loading anything at all, and that's before complaints about performance issues. This has gone on for ages, how come something as important as this has been unresolved for so long?
A: There are lots of reasons that people can experience problems, and we work through (and fix) different ones all the time. We have pretty detailed metrics on different aspects of performance, stability, load-time, load-error, etc. We can see them getting better in meaningful chunks, but that spreads out across 130M users in a way that isn't to anyone's satisfaction. (This is one area in which neither the inherent characteristics of the Android webview nor the OEM-specific tweaks that occur are our friends. Really, they aren't even cordial.) We've been on fixed-date release cycles since 1.9, and we're now down to every 4 weeks (where we'll stay); this was a shit-ton of work for a large number of people, but it means we can get improvements out to users faster even while investing in longer-term features or architecture changes.
Q: What's the best way for us, as users, to make it known that something isn't working right with the app and make a difference? As of right now I could make quite a list of things that don't work with the app, however it would feel a bit like a drop in the ocean for all the feedback you probably receive and feels like it would go unnoticed...We want to help :)
A: There's a bug reporting mechanism either via the website or the app that someone on my team reads and rolls up for the developers weekly. My internal build has another mechanism for it, so I embarrassingly can't tell you in more detail right now. :-/
Q: Is it true that Facebookers have been forced to use the android app to get a feel for how bad it is?
A: Neither the assertion nor the implication are true to my knowledge, and I am virtually certain that my knowledge on this issue is complete.
Although we haven't got a definitive date for the next version of Facebook for Android, it's obvious that the development team is working hard to bring us the best app possible. Hopefully it will arrive sooner rather than later, but I'd rather wait and have an app that meets my expectations than have a half-finished release given to me tomorrow.
If you want to read the entire thread with Facebook's Director of Mobile Engineering, you can do so here.
Thanks, Phil Jolley.