Facebook拋棄HTML5改用原生APP應(yīng)用想到的

2012-10-08 09:25:49來源:極客公園作者:

在上月的 Techcrunch Disrupt 上,F(xiàn)acebook CEO Mark Zukerberg 針對(duì)其移動(dòng) App 的這番發(fā)言引發(fā)了一場(chǎng)針對(duì) Web App 的聲討。HTML 5 驅(qū)動(dòng)的 Web App 從在此之前的明日之星,似乎變成了所有相關(guān)移動(dòng)應(yīng)用體驗(yàn)不佳的最大癥結(jié)所在……

Facebook 所犯的最大錯(cuò)誤,就是將賭注押在了 HTML 5、而不是原生應(yīng)用上。

在上月的 Techcrunch Disrupt 上,F(xiàn)acebook CEO Mark Zukerberg 針對(duì)其移動(dòng) App 的這番發(fā)言引發(fā)了一場(chǎng)針對(duì) Web App 的聲討。HTML 5 驅(qū)動(dòng)的 Web App 從在此之前的明日之星,似乎變成了所有相關(guān)移動(dòng)應(yīng)用體驗(yàn)不佳的最大癥結(jié)所在。從用戶評(píng)價(jià)上,F(xiàn)acebook 新的原生 iOS App 從過去的 1.5 星評(píng)價(jià)迅速提升到了 4 星;從使用數(shù)據(jù)上,在新的應(yīng)用推出后,用戶的使用率上升了一倍之多。對(duì)于 Facebook 這樣一個(gè)用戶量龐大的應(yīng)用來說,能夠獲得如此的提升實(shí)屬難得,特別是考慮到新的應(yīng)用在視覺上與舊的應(yīng)用幾乎沒有什么區(qū)別。用戶的一致反應(yīng)是,新的應(yīng)用在速度和使用體驗(yàn)上有了大幅度的改進(jìn)。

那么,我們是否可以得到結(jié)論說:在移動(dòng)設(shè)備上,HTML 5 應(yīng)用很糟糕,原生應(yīng)用是王道呢?也許我們應(yīng)該先看看 Facebook 手機(jī)應(yīng)用的發(fā)展歷程是怎么樣的。

Joe Hewitt,這位 Web 開發(fā)工程師都相當(dāng)熟知的 Firefox、Firebug 開發(fā)者,同樣也是 Facebook iPhone 應(yīng)用的最初開發(fā)人員。他開發(fā)的 Facebook 第一版原生 App 在當(dāng)時(shí)獲得了廣泛的好評(píng),從其中衍生出來的 Three20 也是 iPhone 早期時(shí),開發(fā)者熟知的一個(gè)開發(fā)框架。但在 Joe 2009 年因?yàn)樘O果應(yīng)用商店的審核問題退出這個(gè)項(xiàng)目后,后續(xù)的開發(fā)人員沒有能夠很好的在其基礎(chǔ)上進(jìn)行進(jìn)一步的改進(jìn)。之后 Facebook 表示,出于跨平臺(tái)開發(fā)的考慮,他們開始轉(zhuǎn)向 HTML 5 的版本開發(fā),但據(jù) Facebook 內(nèi)部開發(fā)人員表示,F(xiàn)acebook 服務(wù)器端團(tuán)隊(duì)與移動(dòng)團(tuán)隊(duì)之間在如何傳輸數(shù)據(jù)方面一直相持不下,移動(dòng)團(tuán)隊(duì)原本計(jì)劃的混合開發(fā)模式是希望服務(wù)器端能為其提供 JSON 數(shù)據(jù),以能夠?qū)崿F(xiàn)本地內(nèi)容緩存、以及快速的內(nèi)容渲染,但服務(wù)器團(tuán)隊(duì)卻告知他們說只能提供 HTML 數(shù)據(jù)。最后結(jié)果是,后來的 Facebook App 僅僅只是其移動(dòng)版網(wǎng)頁的簡(jiǎn)單封裝而沒有什么優(yōu)化,其性能嚴(yán)重落后于同時(shí)間的其他原生應(yīng)用,也落后于其他 Web 應(yīng)用。

Facebook拋棄HTML5改用原生APP應(yīng)用想到的

對(duì)于 Facebook 來說,其手機(jī)應(yīng)用之前難用的主要原因并不在于 HTML 5,而更多的在于其執(zhí)行中的問題,這也是目前很多 Web 封裝型應(yīng)用的共同問題。由于目前各大手機(jī)平臺(tái)上 WebView 本身的性能限制和特性缺失,使得這些簡(jiǎn)單網(wǎng)頁封裝型應(yīng)用不僅無法趕上原生應(yīng)用的水平,甚至還比不上自己的移動(dòng)版網(wǎng)頁(出于安全性的考慮,蘋果對(duì)于 Safari 以外的 Web App 采用的 UIWebView 進(jìn)行了限制,使其 在 JS 腳本執(zhí)行速度等方面無法發(fā)揮真正的性能,而 Android 的 WebView 性能則更是不盡如人意。)

但這并不意味著 HTML 5 在移動(dòng)開發(fā)中徹底失去了意義,F(xiàn)acebook 雖然比較激進(jìn)的轉(zhuǎn)向了原生開發(fā),但事實(shí)上,新的 Facebook App 同樣也采用了混合的做法,在應(yīng)用的大多數(shù)地方采用了原生代碼來實(shí)現(xiàn)優(yōu)化的性能,但在會(huì)頻繁變動(dòng)的地方采用了 HTML 5 代碼來實(shí)現(xiàn)快速的功能更新分發(fā),而相對(duì)應(yīng)的原生代碼更新則會(huì)累積到下一次應(yīng)用升級(jí)時(shí)進(jìn)行更新(所謂的“fallback" renderer)。

如果說新的 Facebook App 對(duì)于 HTML 5 的使用僅僅是實(shí)驗(yàn)性質(zhì)的話,那么我們從 LinkedIn、Quora 等業(yè)界一致好評(píng)的優(yōu)秀應(yīng)用中,可以看到 HTML 5 與原生應(yīng)用結(jié)合使用的優(yōu)秀案例:LinkedIn iPad 應(yīng)用 95% 都采用了 Web 代碼,在性能敏感的地方使用 Node.js 來進(jìn)行優(yōu)化;Quora 的交互功能部分采用了原生代碼,但在內(nèi)容呈現(xiàn)上則采用了 HTML 5 來實(shí)現(xiàn)。

對(duì)于應(yīng)用開發(fā)者來說,不應(yīng)僅僅因?yàn)?Facebook 的這一政策轉(zhuǎn)向就激進(jìn)的改變自己應(yīng)用的開發(fā)方向。也許單純的 Web App 打包型應(yīng)用的確還無法滿足用戶的標(biāo)準(zhǔn),但 HTML 5 即使在目前的情況下也可以在原生應(yīng)用中發(fā)揮重要的作用(甚至像 LinkedIn 那樣,實(shí)現(xiàn)非常優(yōu)秀的體驗(yàn)),當(dāng)然其未來會(huì)如何進(jìn)展還有待繼續(xù)的關(guān)注。在這方面,Mozilla Firefox OS、Google Chrome 等是 HTML 5 未來在移動(dòng)端如何進(jìn)化的值得關(guān)注的參與者。

此外,也不要忽略了 Mark Zuckerberg 講話的另一部分:Facebook 的移動(dòng)版網(wǎng)頁的使用量依然比 iOS、Android 應(yīng)用加起來還要多。移動(dòng)網(wǎng)頁將依然是 Facebook 重要的戰(zhàn)略陣地,我們希望 Facebook 能夠在其 HTML 5 移動(dòng)端進(jìn)一步進(jìn)行優(yōu)化和改進(jìn),而不是僅僅抱怨其多么的不好用。

關(guān)鍵詞:FacebookHTML5APP

贊助商鏈接: