Facebook Kisses HTML5 Goodbye With Rebuilt iOS App
Aug 25, 2012 5:00 AM PT
Facebook has released a new version of its iOS app, one that the company rebuilt from the ground up using Apple's Xcode integrated development environment (IDE).
In doing so, it got rid of HTML5, on which the previous version of its iOS app relied.
The move to native iOS has sped up the app's performance, Facebook stated. While HTML5 allowed the social network's devs to leverage much of the same code across iOS, Android and the mobile Web, among other things, it wasn't especially fast.
"There's a real preference for native apps due to performance and the ability to access native features on the device," Michael King, director of enterprise strategy at Appcelerator, told TechNewsWorld.
"There is likely a disillusionment phase for HTML5 where the technology behind some apps may get reworked in native platforms," remarked Al Hilwa, program director, applications development software, at IDC. "Anyone who thought that HTML5 was a panacea for mobile development is probably reconsidering that."
The New Facebook iOS App
This new app is the first created without the use of Facebook's open source Three20 framework, the social networking company said. Over the years, the framework has become less relevant.
The update does not include a major revision of the previous version's layout, interface or features. However, the new app implements various techniques to speed things up, Facebook said. For example, it rebalances when certain tasks are performed. Tasks that require lots of computational power, such as networking activity, JSON parsing, NSManagedObject creation and saving to disk, are performed in the background.
Further, the new app asynchronously calculates the sizes for all strings and caches CTFramesetters when it downloads new content, Facebook stated. It uses all these calculations later when it presents the story in its UITableView.
The new app also shows previously cached content immediately.
Facebook will continue using HTML5 code in areas within the app where it anticipates making changes more often, as this will allow it to push updates on the server side without requiring users to download a new version of the app.
"Software development is iterative in nature, and ... I think the Facebook folks have ... changed the underlying technology so that they can begin to address the actual substantive functional issues more efficiently," IDC's Hilwa told TechNewsWorld.
Facebook did not respond to our request to comment.
HTML5 and the Mobile World
The promise of HTML5 is that, like Java, it lets devs write an app once and run it across many different platforms.
However, that's a vision that has been brought to its knees by reality.
"The write once, work everywhere performance of HTML5 isn't being realized," Appcelerator's King said. "The manufacturers of mobile devices and operating systems each have their own browser, and these don't necessarily implement the pre-ratified standard in the same way."
Appcelerator has found that there is "a 30 percent differential in features that are activated in all these different browsers," King continued. The differences exist in Android devices from the same vendor, with different versions of Android, or with the same version of the OS on products from different vendors. The form factor also is an issue, because "a tablet is different from a smartphone and a 7-inch tablet is different from a 10-inch tablet."
HTML5's Still a Contender
The market will rationalize around two tiers of apps, IDC's Hilwa suggested. Native apps will be used "for optimal user experiences or for use of specific hardware capabilities or for appealing to the user base of a particular platform. Mobile Web apps based on HTML5 will be made "for enterprises needing to address employee access or mobility to back-end systems."
"Facebook gave up a lot by going this [HTML5] route," Sam Abadir, chief technology officer at AppMobi, told TechNewsWorld. "You have to wonder what would have happened if they'd invested the engineering cycles into making the experience better, as opposed to recoding in iOS."
The new app has drawn mixed reviews, and that indicates switching from HTML5 to Objective-C "didn't fix the experience," Abadir continued. "We know from experience ... that native scrolling, speed, and smooth transitions are very fixable issues on both iOS and Android."