去年此時,W3C定稿了HTML5。我曾發表一篇文章《HTML 5終于定稿,為什么原生App世界將被顛覆》,這文章轉載量很大,它闡述了HTML5的來龍去脈,分析了HTML5的優劣勢并對未來發展做了一些預測。
時隔一年,我們看看HTML5產業都發生了什么,那些基于理論的預測,哪些被實踐了,結果又如何?
- 2015年初,Facebook宣布推出React Native開源框架。
- 2015年初,騰訊微信推出了JS SDK。
- 2015年中,阿里巴巴公司的Judy Zhu入選W3C Advisory Board,這是中國人在W3C組織中話語權最高的位置。
- 2015年中,HTML5中國產業聯盟舉行擴大會議,引入十幾家會員單位
- 2015年中,Firefox副總宮力離職創業H5OS并獲得巨額融資。
- 騰訊QQ玩吧成為重要的HTML5手機游戲平臺。
- 360手機助手與DCloud合作推出流應用,開啟HTML5替代原生的序幕。
從整體來看,2015年是各個巨頭進軍HTML5領域的探索年,不同的公司通過不同的方式在探索HTML5如何為其所用,在推進、驗證、糾錯、繼續推進中不停迭代,并出現了一些非常亮眼的突破。
Facebook回歸并發布React Native,并非擁抱HTML5
扎克伯格在2013年放棄HTML5的聲明是HTML5歷史上黑暗的一幕。2015年,Facebook終于回來了。不過這種回歸略微尷尬的是:React Native并非擁抱HTML5,而是準備干掉HTML5。React Native雖然仍然是JS,但并不兼容HTML5。通過Facebook的自定義語法,React Native實現了更高效率的渲染引擎,提升了性能表現。
React Native從年初召開發布會,然后發布iOS版,直到9月份Android版推出,中間也是在不停試水。
Facebook基于動態語言構建生態鏈的動力是十足的,作為全球最大的社交基礎平臺,Facebook的Web版本上活躍著廣泛的三方應用,但手機上這套體系搬過不來。
Facebook自己的App是原生開發的,但三方應用如果也使用原生開發,是無法成為Facebook移動生態的一部分的。而基于HTML5的三方應用,在手機上的表現實在不佳,嚴重打擊用戶在手機上使用、購買這些三方應用的熱情。而Facebook極大的盈利來源恰恰是從三方應用的收入中獲取分成。
雖然基于動態語言構建生態系統的動力十足,但Facebook為何要另起爐灶呢?
當初Facebook放棄HTML5,就是因為HTML5的渲染效率在手機上達不到流暢標準,Facebook認為罪魁禍首是DOM和CSS3。而React Native的原則就是No DOM,使用了完全不同的繪制引擎。
當初CSS3被設計的超級復雜,很大程度上是為了替代Flash在HTML4年代酷炫的交互效果。在PC上硬件資源沒問題,CSS3雖然復雜也能跑得流暢。但手機不同于PC,DOM和CSS重繪在低端機上并不流暢。
但無論如何,自建標準是比較難的事情,如果僅在Facebook生態里自然沒別人管,但如果做大了就又會像Flash一樣遭遇巨頭聯合絞殺。但是React Native確實在倒逼瀏覽器引擎開發商反思渲染引擎應該如何優化。
騰訊在微信和QQ兩大生態中,運用不同思路探索HTML5
騰訊也是社交巨頭,和Facebook有類似的需求,圍繞著騰訊巨大的用戶群,有眾多三方應用在這里掘金。不過騰訊有微信和QQ兩套生態,這兩個生態做HTML5的思路還并不相同。對微信而言,公眾號就是它的生態,為了增強公眾號的能力,微信推出了JS SDK,它本質上是一種輕應用,強化了JS的能力,補充了十幾類常用的API。公眾號是以服務內容和應用為主的,JS SDK的強化基本沒有考慮HTML5游戲的需求。
雖然微信強化了JS SDK,但公眾號的性能和體驗還是讓用戶不太爽的,切換頁面的長時間等待、Back錯亂等很多問題讓人煩躁。從這個角度看,還是落后Facebook一籌。
另一方面,如何推進開發商使用JS SDK也是一件撓頭的事情。本來滴滴出行內嵌在微信里的版本是可以通過微信JS SDK來展現地圖和語音輸入的,但滴滴并沒有強化微信內嵌版的體驗。這里就暴露了微信的另一個問題:當一個App廠商自己也是巨頭或者想成為巨頭時,它必然不會依賴和強化微信里的入口,它會希望主推自己的獨立入口。
回想張小龍做微信公眾號的理念“再小的個體也有自己的品牌”和“消除中介”,這一切也是順理成章。
與微信不同,QQ是另一套思路,QQ用戶低齡化,愛玩游戲,通過HTML5游戲變現是QQ空間這個產品更關注的事情,于是騰訊在QQ空間App里推出了玩吧欄目,專門匯聚HTML5游戲,給這些游戲導流量,然后獲取分成收益。目前玩吧匯聚了各種主流HTML5游戲,包括普通HTML5游戲和使用Cocos2d-HTML5、Egret等引擎的游戲。
2015年有不少渠道在探索HTML5游戲,包括瀏覽器和一些超級App,甚至包括滴滴出行也開設了游戲中心。但就目前的情況,大多數渠道都沒有亮眼成績。玩吧在眾多渠道的勝出反映一個現狀:HTML5游戲目前比較適合基于社交屬性的輕度游戲。
業內還有一些開發商嘗試把HTML5游戲引入到互動營銷、客戶服務以及多屏互動領域,這些有意義的探索或許在未來能給消費者和商家帶來新的體驗。
將HTML5應用于應用市場,360等企業尋求新突破點
應用市場對待HTML5與社交平臺不同。應用市場不存在通過社交用戶建立開放平臺并變現的需求,應用市場是比較自由和單純的發行渠道。
但原生應用的發行是一個很簡單的工作,無法差異化的,各家就是拼自己的資源和流量占入口。于是應用市場也在尋找自己的突破點。360手機助手在2015年初上線了生活助手欄目,匯總了各種O2O廠商的服務,但不是讓用戶下載這些O2O廠商的原生App,而是直接打開HTML5網頁。年中360還宣布對HTML5服務免流量,目前360生活助手里訪問這些O2O廠商的HTML5 App可以不花通信流量費,費用由360買單。
O2O服務的集成發行其他巨頭也很重視,百度在宣布200億砸向O2O后,手機百度及各條產品都很注重O2O廠商的HTML5服務引入;小米也推出了小米生活,華為也在做華為生活,也都是類似思路。于是今年O2O廠商們有一個忙碌的工作就是把HTML5頁面集成到各家渠道。由App分發升級為服務分發,這是應用市場自己的動力,但用戶使用習慣的養成還需要時間。
OS國產化,從HTML5入手
2015年中,HTML5中國產業聯盟舉行擴大會議。這個聯盟其實2013年就成立了,無奈當時整個產業太冷。隨著基礎環境的變化,越來越多的公司開始重視HTML5,并加入HTML5中國產業聯盟一起推動產業發展。目前聯盟的會員們已經形成從開發、測試、發行、培訓、外包、融資、媒介宣傳的一條龍HTML5產業服務能力。這也讓中國的HTML5開發者有更強的信心和更方便的服務。
2015年中,Firefox副總裁、Firefox OS的核心人物宮力博士,宣布辭職創業做H5OS,并獲得紫光國際1億美金的巨額投資。這筆巨款著實令人吃驚,且不說上半年瘋狂股市是否引發泡沫,但H5OS指向的是紫光國際看好的中國政府國產化OS市場。自從斯諾登事件后,中國政府就反復強調國產化。在政府信息化領域圍繞著很多IT公司,都試圖從中尋找到新機會。
關于OS的國產化,有些人從linux入手,另有一些人,從HTML5入手。鑒于Google和中國政府的關系,Chrome OS是沒人敢碰的,于是不少人在接觸Firefox OS,宮力博士的創業也在情理之中。
此外,華為也推出了國產安全手機,從芯片到系統都是國產的。
但手機上的OS比PC上的OS難做。做一個操作系統本就很難,操作系統出來后要建生態更難。PC上大多數業務本就是基于Web的,但手機上目前大多數優質App都是Native的,缺少優質的應用是目前所有做手機HTML5 OS的尷尬。如果希望在HTML5的OS上有足夠好的體驗,必然涉及擴展HTML5,但如果各家定義自己的擴展規范,讓開發者為每家單獨開發,這個事基本就無法推動了。產業各方合力,把擴展標準統一,才可能有機會。
流應用,HTML5產業又一大亮點
2015年在HTML5產業里最大的亮點是360和DCloud公司推出的流應用,它對于HTML5缺陷的彌補和優勢的發揮,可以說做得淋漓盡致。
在360手機助手里搜索“大眾點評外賣”,看到的按鈕不是“下載”,而是“秒開”。
流應用?這是輕應用換個概念炒冷飯嗎?
當然不是,點擊秒開后并不是在線打開一個網頁,仍然是安裝一個客戶端App,仍然如原生App般強大和流暢。只不過這個客戶端App是JS代碼,并像流媒體一樣流式發行、邊用邊下,實現了5秒內完成客戶端App的下載、安裝、啟動。App二次使用仍然在桌面點圖標啟動,應用使用體驗也與傳統原生App沒有區別。
一定要注意,對于用戶而言,使用App的功能體驗與之前的原生方式并沒有區別,但是獲取App卻秒開了。
讀者肯定會問,怎么實現的?
這個新概念包括的新技術有點多,本文不負責科普所有實現過程。大概講講HTML5為何能達到原生的功能和體驗。
流應用使用了一種強化的JS引擎(HTML5+),這種引擎能讓JS調用操作系統的40萬API,并將之前HTML5體驗不佳的交互都改進為原生體驗。
不同于React Native的反HTML5方案,HTML5+采取的方案是強化HTML5。
HTML5+兼容HTML5,并擴充40萬原生API。對于DOM和CSS3動畫效果不佳的部分場景,使用原生動畫補足,比如窗體切換、下拉刷新的動態交互效果,不采用CSS3動畫,而是通過JS調用了原生view動畫。
相比React Native,強化HTML5的方案對開發商更友好,開發商只需把現有的HTML5版本做簡單強化改造即可,而不是重新寫一套No DOM的代碼。
HTML5定稿后一年的業內大事基本整理完畢,接下來我想深入分析流應用這個里程碑產品會給產業帶來什么變化。
HTML5出現這幾年,在PC上已經廣為應用,但在手機上,始終是備胎。
流應用的出現顛覆了大眾對HTML5 的認知。以往提到HTML5,大多數人都會認為HTML5有5個問題:
- HTML5的性能不行,不如原生;
- HTML5的api不夠,很多功能實現不了;
- HTML5沒法離線運行,斷網就不能用了,即使有離線緩存,三方軟件清理垃圾后也不能用了;
- HTML5只能在瀏覽器里用,沒法直接在桌面啟動;
- 通過HTML5強化引擎(如PhoneGap/Cordova)開發跨平臺App,那是小公司為了省錢做的事,大公司還是要用原生。
現在,這五個常規認知被終結了。