Facebook mouse

Facebook’s iOS update is not about HTML5

I recently read through a popular Branch thread that discussed Facebook’s newly updated iOS app, which “largely moves away from HTML5 in favor of native.”

The debate centered around the viability of HTML5 versus native apps, but that actually has very little to do with Facebook’s update.

The new Facebook app is not native

I downloaded the new app to see exactly what the major changes were. To my surprise, the only major noticeable change is that the feed now renders natively. While I might have missed other changes (as I’m not much of a Facebook user), one thing is rather clear: there is still a whole lot of HTML in this app.

User profiles are HTML.
Pages are HTML.
Groups are HTML.
Events are HTML
App Center is HTML.
Find Friends is HTML.
Pokes is HTML.
Notes are HTML.
Half of Settings are HTML.

All of a sudden, the line about the app largely moving away from HTML5 in favor of native seems a bit naive.

UI issues

Facebook Engineering released a post about the update in which they explained that scrolling through the feed on the old app was problematic, especially when automatically loading more content. Their solution was running network-related and computationally expensive tasks on a separate thread, so they wouldn’t block UI interactions. There is no reason this could not have been done in HTML with Web Workers, as it is supported on iOS.

Website vs. old native app

The Facebook mobile website is actually rather fast, and it outperforms the old mobile app to a large degree. At first I assumed that the Nitro JavaScript engine was giving Mobile Safari an advantage, but when I looked deeper into the problems with the mobile app, it became clear that it had little to do with JavaScript execution or HTML/CSS rendering.

Network issues

The biggest and most common issues with the old mobile app were related to content not loading from Facebook’s servers.

For example, when I opened my message list, I often waited over a minute for any messages to show up. Once the content loaded, though, everything performed fine.

These are indicative of network issues. Clearly this isn’t a case of slow JavaScript execution, rendering glitches, or a badly performing UI — the usual offenders on the mobile Web.

More importantly, how is it that the mobile website did not have these same network issues? It sounds less like HTML5 was the problem and more like the native app was poorly implemented.

HTML5 vs. native

As a Web developer, I know many of the pains of the mobile Web. I’m not remarking on whether Web or native is superior.

I’m arguing that this recent Facebook update has little relevance to that debate.


×

Submit

Send us a link to your content or a news story you've read and we'll promote it for you. It's that simple. Learn More next

By clicking Submit you agree to our Terms & Conditions

Thanks