Some thoughts about Facebook native app
On Techcrunch Disrupt last month, Facebook CEO Mark Zuckerberg's remarks about their mobile app sparked a denunciation against Web App. HTML 5 seems to have become the bottleneck of poor experience of all related mobile applications. From the user perspective, Facebook native iOS App rates from the 1.5 star to four star now; since the introduction of new native app, the user usage is doubled. It's not easy to have a huge rise of user usage for such a big app like Facebook. Especially considering the new application has no much difference from the old application visually. From reaction of the users, the new application has substantial improvement in the speed and experience.
Well, can we conclude that HTML 5 applications are very bad on mobile devices, native application is king? Maybe we should take a look at the Facebook mobile application development process.
Joe Hewitt, the developer of Firefox, Firebug, is also the initial developer of Facebook mobile application. The first Facebook native app developed by him was widely praised at that time, A development framework Three20 derived from this app is also well known. In 2009, Joe left this project because some problems with the App Store censorship. Subsequent developers didn't improve too much on the version developed by Joe. Later Facebook turned to HTML 5 version development for cross-platform consideration, But according to Facebook internal developers, there were some conflicts between Facebook server-side team and mobile team on data transmission.Mobile team originally expected server side to provide JSON data to achieve the local content cache and fast content rendering with mixed development mode, but the server side team informed mobile team that they could only provide HTML data. Then the final result was Facebook App was just a simple encapsulation of its mobile website without much optimization. Its performance lagged seriously behind other native applications at that time, also lagged behind other Web applications.
For Facebook, the main reason why its mobile app is difficult to use is not because of HTML 5, it's more because of its implementation, which is also the common problem of lots of web encapsulated applications. Because of WebView performance limitations and features missing on major mobile phone platforms, these simple web encapsulated applications are not at the same level of native applications on speed and performance
This does not mean that HTML 5 completely lost its position in mobile development. Although Facebook turns to native app development, in fact, the new Facebook App also uses a hybrid approach, in most places this application uses native codes to achieve optimized performance, but they still adopt HTML 5 code to achieve rapid functional update where frequent changes need to be done, and the corresponding native code updates will be accumulated to the next application(so-called "fallback" renderer).
If we say that the use of HTML 5 on Facebook App is only experimental, then from LinkedIn, Quora and other excellent applications, we can see some excellent cases of combining HTML 5 and native codes: LinkedIn application on iPad uses web code in 95% of its codes, uses Node.js only in some place where performance is critical; Quora uses native code in interaction functional part, but use HTML 5 for content rendering.
For application developers, it is not wise to stay away from HTML 5 just because of Facebook's policy shift. Maybe a simple web encapsulated app does not meet the user's expectation, but HTML 5 can still play an important role in mobile app development (like LinkedIn, Quora), and of course, it remains to be a continuing concern for its future. In this regard, Mozilla Firefox OS, Google Chrome will be active participants to promote HTML 5.