Facebook’s new app for iPhone and iPad has made an impression on users with a significant improvement in speed and performance. In the world of software development, the project has also gotten lots of attention because of the company’s decision to shift key components of the app to native iOS code, moving away from HTML5.
But the engineers working on the project didn’t set out to make any grand statement along those lines. They just wanted to make a better app.
“We started with an experiment with the newsfeed, to see what the differences would really be like if we did it one way versus the other,” said Todd Krabach, a software engineer at Facebook’s Seattle office and one of the leaders of the project. “We ran through some of those experiments and we spent the first couple months on this project building nothing but the newsfeed to demonstrate the differences.”
He explained, “At that point we weren’t committed to rebuilding the app from scratch. It was more of an experiment, much closer to one of our hackathon projects.”
Ultimately, the benefits of native code won out, despite the drawbacks.
By shifting to native code for key components of the app, the company is giving up some of the key benefits of a pure HTML5 approach, including speed of deployment, cross-platform compatibility, and the ability to upgrade users to new features simultaneously.
But in evaluating HTML5, he said, the team “hit some limitations for how fast we could get it to respond, and how clean we could get that interface to be.”
Krabach shared details of the project in an interview with GeekWire this week, as an example of the social networking giant’s behind-the-scenes development and decision-making process.
“The evaluation conversation included everybody at every level,” he said. “The company has been very focused on mobile. We want to make that our best experience for Facebook.”
The key question for many people in the tech industry: Based on the experience making the Facebook iOS app, where does Krabach see the native code vs. HTML5 tug-of-war going from here? He said he has been getting that question a lot.
“If the capabilities of the (iOS software development kit) were to stay stagnant for a while, I could see the possibility of HTML5 catching up and really being a platform where you can build the premium experience,” he said. “But the truth is that the native SDKs are going to continue to increase the quality bar. … I don’t really personally see a whole lot of possibilities for (HTML5) to ever hit quality parity with what you can get with native.”
That said, Krabach said he still considers Facebook’s iOS app a hybrid application, leveraging HTML5 in specific ways.
“We’re always going to be building hybrid applications,” he said. “It’s an interesting dance that won’t go away.”
The project is also an example of Facebook’s distributed development environment, with engineers in the Seattle office — its largest engineering outpost outside of California — collaborating closely with those at its Menlo Park headquarters.
The company relies heavily on Internet Relay Chat (IRC) and video-conferencing. Krabach says he often finds it easier to communicate with someone sitting next to him over IRC, making their actual location less important.
“It gives a lot more flexibility for where we work and how we do things,” he said — citing as an example the ability to work in the (waterless) hot tub recently installed at the Seattle office.
A 5.0.1 version of the Facebook iOS app, released last week, added support for the iPhone 5 and iOS 6.