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