自 W3C 于 1999 年發(fā)布 HTML4 后,Web 世界快速發(fā)展,一片繁榮。人們一度認(rèn)為 HTML標(biāo)準(zhǔn)不需要升級(jí)了。一些致力于發(fā)展 Web App 的公司另行成立了 WHATWG 組織,直到 2007年,W3C 從 WHATWG 接手相關(guān)工作,重新開(kāi)始發(fā)展 HTML5。
縱觀 HTML5 的發(fā)展,也是一波三折,有用戶(hù)的需求在推動(dòng),有技術(shù)開(kāi)發(fā)者的需求在推動(dòng),更有巨大的商業(yè)利益在推動(dòng)。過(guò)去這些年,HTML5 顛覆了 PC 互聯(lián)網(wǎng)的格局,微信朋友圈里的一個(gè)神經(jīng)病貓小游戲,打開(kāi)了人們對(duì)移動(dòng)互聯(lián)網(wǎng)的各種幻想,優(yōu)化了移動(dòng)互聯(lián)網(wǎng)的體驗(yàn),接下來(lái),移動(dòng)互聯(lián)網(wǎng)將產(chǎn)生一個(gè)全新的入口,而由超級(jí) App+HTML5 主導(dǎo)的 web app 將顛覆原生 App 移動(dòng)互聯(lián)世界。
傳統(tǒng)瀏覽器+HTML5 組合的灰色時(shí)期
在 HTML5 標(biāo)準(zhǔn)的升級(jí)過(guò)程中,蘋(píng)果和 Google 同時(shí)也看到了瀏覽器市場(chǎng)重新洗牌的機(jī)會(huì),他們一方面參與 HTML5 的規(guī)范,一邊在瀏覽器產(chǎn)品上發(fā)力。Apple 首先開(kāi)始大力發(fā)展 Safari,建立 WebKit 開(kāi)源項(xiàng)目,Mac、iOS、Windows 多平臺(tái)齊發(fā)力;Google 起初是贊助 Mozilla 開(kāi)發(fā)Firefox,后來(lái)自己開(kāi)發(fā)了 v8 引擎,合并 WebKit,于 2008 年正式推出 Chrome?!窱E 的私有規(guī)范+Flash 不是標(biāo)準(zhǔn),我們才是標(biāo)準(zhǔn)」這樣的口號(hào)在新一代瀏覽器大戰(zhàn)中打響。
隨著 Chrome 和 Safari 的高歌猛進(jìn),以及 IE+Flash 的衰落,HTML5 告一段落,進(jìn)入了下一個(gè)時(shí)代——移動(dòng)互聯(lián)網(wǎng)。HTML5 的跨平臺(tái)優(yōu)勢(shì)在移動(dòng)互聯(lián)網(wǎng)時(shí)代被進(jìn)一步凸顯。HTML5 是唯一一個(gè)通吃 PC、Mac、iPhone、iPad、Android、Windows Phone 等主流平臺(tái)的跨平臺(tái)語(yǔ)言。Java和 Flash 都曾夢(mèng)想這個(gè)位置,但夢(mèng)斷于 iOS。此時(shí)人們紛紛開(kāi)始研究基于 HTML5 開(kāi)發(fā)跨平臺(tái)手機(jī)應(yīng)用。很多人當(dāng)時(shí)認(rèn)為,原生應(yīng)用只是過(guò)渡,就像當(dāng)年從 C/S 結(jié)構(gòu)轉(zhuǎn)變?yōu)?B/S 結(jié)構(gòu)一樣。而且學(xué)習(xí) Objective-C 和 Java 很費(fèi)勁,既然會(huì)網(wǎng)頁(yè)開(kāi)發(fā),為何不試試 HTML5。
W3C 此時(shí)成立了 Device API 工作組,為 HTML5 擴(kuò)展了 Camera、GPS 等手機(jī)特有的 API,然而麻煩的是,移動(dòng)互聯(lián)網(wǎng)初期的迭代太快了,手機(jī) OS 在不停的擴(kuò)展硬件 API,陀螺儀、距離感應(yīng)器、氣壓計(jì)……每年手機(jī) OS 都有大版本更新。HTML5 沒(méi)有跟上移動(dòng)互聯(lián)網(wǎng)初期的快速迭代。
PhoneGap 的出現(xiàn),給開(kāi)發(fā)者打開(kāi)了一扇窗。很多人期待 PhoneGap 不停擴(kuò)展 API,來(lái)補(bǔ)充瀏覽器的不足。Adobe 看到 PhoneGap 仿佛看到了重振江湖地位的希望,但在 Adobe 收購(gòu)PhoneGap 后,又發(fā)現(xiàn)這個(gè)東西可商用性不足,而且開(kāi)源使得 Adobe 無(wú)法像 Flash 那樣獲取商業(yè)利益,于是就把 PhoneGap 捐給了 Apache,改名為 Cordova。
因?yàn)楦鞣N原因,Cordova 的定位最終沒(méi)有成為瀏覽器的強(qiáng)化,而走向了混合式開(kāi)發(fā)?;诋?dāng)時(shí)的背景,他們認(rèn)為原生是不可替代的,「原生+HTML5」的混合模式更有意義。
這時(shí) Facebook 加入了 W3C,牽頭成立了 Mobile Web 工作組。Facebook 是混 Web 圈的,并且在手機(jī) OS 上沒(méi)有自己的領(lǐng)地,他不喜歡被蘋(píng)果和 Google 掌控的原生應(yīng)用生態(tài)系統(tǒng)。Mobile Web 這個(gè)工作組的重要目標(biāo)就是讓 HTML5 開(kāi)發(fā)的網(wǎng)頁(yè)應(yīng)用達(dá)到原生應(yīng)用的體驗(yàn)。然而,事與愿違,結(jié)果是努力了卻失敗了。2012 年,F(xiàn)acebook 放棄了 HTML5 的新聞充斥了全世界的 IT 媒體,HTML5 瞬間被打入冷宮。
而在 HTML5 定稿之前,國(guó)內(nèi)絕大多數(shù)瀏覽器也已經(jīng)支持 HTML5,包括 UC 在內(nèi)的很多手機(jī)瀏覽器已經(jīng)迫不及待發(fā)展 Web App,用于抵消原生 App 所吞噬的流量。在 HTML5 之前 Web App曾經(jīng)試圖和原生 App 爭(zhēng)奪手機(jī)桌面,不過(guò)限于 Web App 天生的缺陷—卡頓、無(wú)法 Push 等,其體驗(yàn)流暢程度遠(yuǎn)遠(yuǎn)落后于原生 App,導(dǎo)致目前手機(jī)桌面依然是原生 App 的天下。
HTML5 定稿 WebApp 迅速崛起了
Facebook 為何放棄 HTML5?這一事件,甚至讓別有用心的人經(jīng)常拿來(lái)唱衰 HTML5 以及 Web App。
核心原因是當(dāng)時(shí)基于 HTML5 真的做不出好的移動(dòng) App。對(duì)比 Twitter 等競(jìng)爭(zhēng)對(duì)手的原生App,F(xiàn)acebook 的 HTML5 版本實(shí)在無(wú)法讓用戶(hù)滿意。比如 Push 功能,到現(xiàn)在 HTML5 的推送和原生的推送體驗(yàn)差距依然巨大,更不用說(shuō) HTML5 應(yīng)用的頁(yè)面切換白屏、下拉刷新/側(cè)滑菜單不流暢等眾多問(wèn)題??粗こ處熭p松實(shí)現(xiàn)搖一搖、二維碼、語(yǔ)音輸入、分享到朋友圈等功能,更是讓 HTML5 工程師感覺(jué)自己站錯(cuò)了隊(duì)。
即使 Facebook 不喜歡被控制,也不能拿被用戶(hù)拋棄來(lái)冒險(xiǎn)。而且 Facebook 并沒(méi)有掌握關(guān)鍵點(diǎn)—手機(jī)瀏覽器內(nèi)核。如果瀏覽器不跟上,徒然定一堆標(biāo)準(zhǔn)草案落不了地。
Facebook 也好,PhoneGap 也好,想在移動(dòng)互聯(lián)網(wǎng)初期就分一杯羹是分不到的,但堅(jiān)持下來(lái),機(jī)會(huì)往往會(huì)出現(xiàn)。
終于,在 2014 年 10 月底,W3C 宣布 HTML5 正式定稿。這個(gè)時(shí)間,不晚不早,硬件性能更強(qiáng)、手機(jī) OS 迭代速度下降。HTML5 的定稿的預(yù)示著新時(shí)代的起航。
對(duì)于移動(dòng)設(shè)備來(lái)說(shuō),硬件性能的提升移動(dòng)程度上抹平了 HTML 的不足,同時(shí)補(bǔ)充了流媒體和游戲能力。行業(yè)支持上從最新的 Android5.0 開(kāi)始,Webview 可以通過(guò) Google Play Store 實(shí)時(shí)更新,和 Chrome 的升級(jí)保持一致,用戶(hù)就可以不刷機(jī)享受到最新的瀏覽器引擎;iOS 8 發(fā)布后,蘋(píng)果還是很識(shí)趣地取消了三方程序調(diào)用 Nitro 的限制,現(xiàn)在任意瀏覽器或應(yīng)用調(diào)用 iOS 的UIWebview 都可以利用 Nitro 加速。
Google 在 2013 年底發(fā)布的 Android 4.4,內(nèi)置的 Webview 不再是蹩腳的 Android WebKit瀏覽器,而是 Chromium,性能大幅提升。從最新的 Android 5.0 開(kāi)始,Webview 可以通過(guò)Google Play Store 實(shí)時(shí)更新,和 Chrome 的升級(jí)保持一致,用戶(hù)就可以不刷機(jī)享受到最新的瀏覽器引擎;再看 Apple 方面,2012 年 iPhone 5 發(fā)布后,HTML5 在 iOS 上的表現(xiàn)已令人滿意,Safari 獨(dú)家的 JavaScript 加速引擎 Nitro 不再那么重要,不過(guò)在 iOS 8 發(fā)布后,蘋(píng)果還是很識(shí)趣地取消了三方程序調(diào)用 Nitro 的限制,現(xiàn)在任意瀏覽器或應(yīng)用調(diào)用 iOS 的UIWebview 都可以利用 Nitro 加速,這樣在前端使用 JS 做大型運(yùn)算也成為可能。
兩大手機(jī)操作系統(tǒng)霸主和瀏覽器巨頭的態(tài)度發(fā)生了變化,使得 HTML5 在手機(jī)上的發(fā)展不再受限,而且這個(gè)變化不可逆只能繼續(xù)向前,這種變化勢(shì)必會(huì)產(chǎn)生深遠(yuǎn)的影響。
全新的互聯(lián)網(wǎng)入口超級(jí) App+Web App 的時(shí)代來(lái)臨
首先從硬件方面來(lái)說(shuō),隨著 Apple iPhone6 的發(fā)布,硬件性能的提升,已經(jīng)抹平了 HTML5的性能劣勢(shì)。Apple 和 Google 的策略也在發(fā)生變化,在 2013 年底 Google 發(fā)布的 Android 4.4 內(nèi)置的 Webview 已經(jīng)不再是 Android Webkit 了,而是 chromium。2012 年的 iPhone5 上面的 HTML5 表現(xiàn)已經(jīng)令人滿意,Safari 獨(dú)家的 Javascript 加速引擎 Nitro 已經(jīng)不再那么重要。而且在 iOS8.0 發(fā)布后,Apple 還取消了第三方程序調(diào)用 Nitro 的限制,現(xiàn)在任意瀏覽器或應(yīng)用調(diào)用 iOS 的 UIWebview 都可以利用 Nitro 加速。兩大移動(dòng)巨頭有意或無(wú)意的改變,讓HTML5 再說(shuō)手機(jī)平臺(tái)上面的發(fā)展不再受限。
而對(duì)于開(kāi)發(fā)者而言,開(kāi)發(fā)者為什么不愿意開(kāi)發(fā) WP 版本,很多時(shí)候是因?yàn)楣ぷ髁刻?,除了版本適配,分辨率調(diào)整等,一旦有新版本推出,在原生 App 中開(kāi)發(fā)者不得不等待多達(dá)兩周時(shí)間去接受審核。另外內(nèi)容維護(hù)上也很麻煩,這也是為什么有些媒體開(kāi)始放棄原生 App 鼓勵(lì)讀者使用 Web App 的原因。除此之外,跨平臺(tái)在多屏?xí)r代給開(kāi)發(fā)者非常痛苦的體驗(yàn),人們都期待當(dāng)年Java 的一次編譯處處運(yùn)行的理想情況。HTML5 目前正在扮演一個(gè)開(kāi)發(fā)者救星的角色。
這也是為什么這兩年誕生了很多基于 HTML5 的開(kāi)源技術(shù)框架,并且非常受用戶(hù)歡迎的原因。云適配是一家只有兩年的小公司,他們主要基于 HTML5 在 PC 網(wǎng)站植入一行 JS 代碼就能實(shí)現(xiàn)PC 網(wǎng)站的移動(dòng)適配,而其在 2014 年推出的中國(guó)首個(gè)開(kāi)源 HTML5 跨屏前端框架 Amaze UI 推出僅僅 3 個(gè)月就收到了近 10 萬(wàn)的下載,幫助眾多的中小企業(yè)成功建立了自己的 Web App,在全球最大的社交編程及代碼托管網(wǎng)站——GitHub 上,獲得近 2000 用戶(hù)的星級(jí)標(biāo)注,成為中國(guó)最受歡的 HTML5 開(kāi)源框架。而這一切,都意味著 HTML5 帶來(lái)的移動(dòng)互聯(lián)網(wǎng)的風(fēng)向轉(zhuǎn)變。
你手機(jī)里裝了多少 App,最常用的有哪些?
可能最多的回答是,我用「微信、QQ,或者其他瀏覽器」等等所謂的超級(jí) App。
對(duì)于其他更多的原生 App,要先進(jìn)入 App Store,每次下載都要輸入密碼,而安卓則不得不經(jīng)歷一系列的權(quán)限確認(rèn)、安裝等,App 下載安裝所需要的用戶(hù)成本一定程度上成為大家使用 App的障礙。但是在 Web App 中這一切都不是問(wèn)題,它極大的降低了用戶(hù)使用成本,用戶(hù)眼睛看到一個(gè)興趣點(diǎn),點(diǎn)擊后,就應(yīng)該立即開(kāi)始滿足用戶(hù)需求。比如流媒體可以立即看,頁(yè)游可以立即玩。
而 HTML5 應(yīng)用導(dǎo)流也非常容易,超級(jí) App(如微信朋友圈)、搜索引擎、應(yīng)用市場(chǎng)、瀏覽器,到處都是基于 HTML5 的 Web App 的流量入口。而原生 App 的流量入口只有應(yīng)用市場(chǎng)。
目前可以看見(jiàn)的是,國(guó)內(nèi)外各大瀏覽器都在推廣 Web App,效果已經(jīng)慢慢顯現(xiàn)。然而,可以預(yù)見(jiàn)的是,短時(shí)間內(nèi)原生 App 還會(huì)占據(jù)主流,但是基于原生 App 本身的缺陷和門(mén)檻,未來(lái)的移動(dòng)互聯(lián)網(wǎng)潮流,說(shuō)不定就在 HTML5 中實(shí)現(xiàn)。
-----------------------------------------------
更多精品內(nèi)容關(guān)注我們微信--- 微號(hào)推 !
微號(hào)推
Id: weihaotui
或通過(guò)掃描下面的二維碼進(jìn)行關(guān)注: