HTML5會讓iOS和Android開發(fā)者轉(zhuǎn)行嗎?
2016年01月29日
29
亦強軟件 分類:HTML5開發(fā)方案
我們第一次談?wù)揌TML5要改變世界大概是因為喬布斯,他堅持在iOS上不兼容Flash,在Adobe統(tǒng)治多媒體開發(fā)的那個年代,這需要付出極大的勇氣。這么多年過去了,雖然所有人都在談?wù)揌TML5,但是大部分人甚至都忘了它還是一個仍在完善中的體系。
2007年W3C(萬維網(wǎng)聯(lián)盟)立項HTML5,直至2014年10月底,這個長達(dá)八年的規(guī)范終于正式定稿。接下來,HTML5將真正開始顛覆原生(Native) App 世界。雖然這種危言聳聽已經(jīng)讓人有點厭煩。但是如果回顧HTML這些年走過的路,你就不會再懷疑它的能量。
一、HTML5 的誕生
自W3C于1999年發(fā)布HTML4后,Web世界快速發(fā)展,一片繁榮。人們一度認(rèn)為HTML標(biāo)準(zhǔn)不需要升級。一些致力于發(fā)展Web App 的公司另行成立了WHATWG組織,直到2007年,W3C從WHATWG接手相關(guān)工作,重新開始發(fā)展HTML5。
HTML5的發(fā)展史,有用戶的需求在推動,有技術(shù)開發(fā)者的需求在推動,更有巨大的商業(yè)利益在推動。在互聯(lián)網(wǎng)的早期,對用戶而言,能打開瀏覽器接入到互聯(lián)網(wǎng)世界就是一個神奇的事情,但互聯(lián)網(wǎng)發(fā)展到2005年前后,開始出現(xiàn)下一個變化,就是寬帶互聯(lián)。
隨著寬帶的普及和電腦性能的增強,人們不再滿足于單純的通過互聯(lián)網(wǎng)看新聞、收發(fā)郵件,消耗更高帶寬的娛樂產(chǎn)品開始出現(xiàn),就是流視頻和網(wǎng)頁游戲。其實視頻和游戲是古老的需求,在互聯(lián)網(wǎng)不普及的時候,需求的滿足方式是離線傳輸?shù)腣CD和游戲光盤;后來互聯(lián)網(wǎng)逐漸普及,人們更改了使用方式,通過下載軟件+本地媒體播放器來看視頻,下載體積較大的端游玩游戲。
但是對消費者體驗更好的新方式還是出現(xiàn)并顛覆了以前的一切,那就是流媒體和網(wǎng)頁游戲。Youtube等公司把握住潮流飛速崛起,各種頁游公司也如雨后春筍。
HTML標(biāo)準(zhǔn)沒有把握住產(chǎn)業(yè)的變化及時演進(jìn),瀏覽器產(chǎn)品也未升級,這塊新需求被瀏覽器插件滿足了,那就是Flash。這個部署在億萬瀏覽器里的商業(yè)插件儼然成為事實標(biāo)準(zhǔn)。2005年Adobe巨資收購Macromedia,把Flash收歸旗下,緊接著大幅推廣FLV流媒體和 action script語言,很明顯這樁收購可以列為IT 并購的經(jīng)典案例,F(xiàn)LV流媒體和Flash游戲風(fēng)靡互聯(lián)網(wǎng),Adobe在新的產(chǎn)業(yè)升級中攫取了大量的利潤。
除了Flash這個商業(yè)產(chǎn)品成為了事實標(biāo)準(zhǔn),W3C還面臨一個尷尬,就是另一個私有擴展協(xié)議的制造者—IE。IE 當(dāng)時在桌面瀏覽器占有壟斷地位,并且擴展了大量的IE Only語法,開發(fā)者完全不知道這些語言是誰定義的。整個web世界,就被兩家公司微軟+Adobe 綁架了。
很多IT巨頭都坐不住了,尤其是蘋果和Google。PC 操作系統(tǒng)的世界難有突破,Web瀏覽器被蘋果寄予厚望;新貴Google雖然大量贊助Mozilla,但并未對IE的地位產(chǎn)生實質(zhì)影響,收購了YouTube后發(fā)現(xiàn)命脈在Adobe手里,也是非常難過,而且Google每年給IE的搜索框和Adoble FLV繳納的費用真不是小數(shù)目。
既然大家都是W3C的主要單位,好吧,我們重新開始做HTML5吧。是的,HTML5其實就是這么誕生的。
二、HTML5第一階段:Web增強與破壟斷
自HTML5誕生以來,一共經(jīng)歷了兩個階段,分別是Web增強和移動互聯(lián)網(wǎng)。我們先從Web增強說起。Web體驗的豐富增強主要表現(xiàn)在:
WebApp HTML5新增了離線存儲、更豐富的表單(比如 Input type=date)、js 線程、socket、標(biāo)準(zhǔn)擴展 embed、css3…
流媒體HTML5新增了audio、video
游戲HTML5新增了canvas、webgl
當(dāng)然HTML5還為搜索引擎的語義分析做了優(yōu)化,比如新增Header和Section等標(biāo)簽,也在無障礙等領(lǐng)域做了不少工作,這些不再多述。HTML5 在流媒體和游戲方面的努力,成功的遏制了Flash的發(fā)展,然后就該遏制IE私有語法了。
在 HTML5 標(biāo)準(zhǔn)的升級過程中,蘋果和Google同時也看到了瀏覽器市場重新洗牌的機會,他們一方面參與HTML5的規(guī)范,一邊在瀏覽器產(chǎn)品上發(fā)力。Apple首先開始大力發(fā)展Safari,建立WebKit開源項目,遷移Safari到Windows平臺;Google起初是贊助Mozilla開發(fā)Firefox,后來自己開發(fā)了v8引擎,合并WebKit,于2008年正式推出Chrome。“IE 的私有規(guī)范+Flash不是標(biāo)準(zhǔn),我們才是標(biāo)準(zhǔn)” 這樣的口號在新一代瀏覽器大戰(zhàn)中打響,IE 瞬間成為千夫所指的壟斷代表,甚至成了阻礙Web發(fā)展的**(當(dāng)時IE6已數(shù)年未更新,并且絲毫不懼Firefox的發(fā)展)。
偏偏微軟此時也出了暈招,推出了一系列即不完整支持規(guī)范又互相不兼容的IE7、8、9、10,徹底失去了開發(fā)者的支持。
Adobe的Flash被遏制,與Web霸主的位子擦肩而過;IE的私有標(biāo)準(zhǔn)被遏制,并且造成IE市場份額不停下滑,直到IE最新的移動版本反過來開始支持WebKit語法,真是令人唏噓。不知道HTML6是不是該打倒WebKit壟斷。
三、HTML5 第二階段: 移動互聯(lián)網(wǎng)
隨著Chrome和Safari的高歌猛進(jìn),以及IE+Flash的衰落,HTML5告一段落,進(jìn)入了下一個時代——移動互聯(lián)網(wǎng)。HTML5的跨平臺優(yōu)勢在移動互聯(lián)網(wǎng)時代被進(jìn)一步凸顯。HTML5是唯一一個通吃PC、Mac、iPhone、iPad、Android、Windows Phone等主流平臺的跨平臺語言。Java 和Flash都曾夢想這個位置,但夢斷于iOS。此時人們紛紛開始研究基于HTML5開發(fā)跨平臺手機應(yīng)用。很多人當(dāng)時認(rèn)為,原生應(yīng)用只是過渡,就像當(dāng)年從C/S 結(jié)構(gòu)轉(zhuǎn)變?yōu)锽/S結(jié)構(gòu)一樣。而且學(xué)習(xí)Objective-C和Java很費勁,我既然會網(wǎng)頁開發(fā),為何不試試HTML5。
W3C此時成立了Device API 工作組,為HTML5擴展了Camera、GPS等手機特有的API,然而麻煩的是,移動互聯(lián)網(wǎng)初期的迭代太快了,手機OS在不停的擴展硬件API,陀螺儀、距離感應(yīng)器、氣壓計。每年手機OS都有大版本更新。而W3C作為一個數(shù)百家會員單位共同決策的組織,從標(biāo)準(zhǔn)草案的提出到達(dá)成一致是非常復(fù)雜的過程,跟不上移動互聯(lián)網(wǎng)初期的快速迭代。
PhoneGap的出現(xiàn),給開發(fā)者打開了一扇窗。很多人期待PhoneGap不停擴展API,來補充瀏覽器的不足。Adobe看到PhoneGap仿佛看到了重振江湖地位的希望,但在Adobe收購PhoneGap后,又發(fā)現(xiàn)這個東西問題很多,而且開源使得Adobe無法像Flash那樣獲取商業(yè)利益,于是就把PhoneGap捐給了Apache,改名為Cordova。
因為各種原因,Cordova 的定位最終沒有成為瀏覽器的強化,而走向了混合式開發(fā)?;诋?dāng)時的背景,他們認(rèn)為原生是不可替代的,“原生+HTML5” 的混合模式更有意義。所以現(xiàn)在Cordova的使用往往是“原生工程師+HTML5 工程師”一起協(xié)作完成App。
這時Facebook加入了W3C,牽頭成立了Mobile Web工作組。Facebook是混Web圈的,并且在手機OS上并無自己的領(lǐng)地,他不喜歡被蘋果和Google掌控的原生應(yīng)用生態(tài)系統(tǒng)。Mobile Web這個工作組的重要目標(biāo)就是讓HTML5開發(fā)的網(wǎng)頁應(yīng)用達(dá)到原生應(yīng)用的體驗。然而,事與愿違,它不努力也就算了,結(jié)果是努力了卻失敗了。2012年,F(xiàn)acebook 放棄HTML5的新聞充斥了全世界的IT媒體,HTML5 瞬間被打入冷宮。
Facebook為何放棄HTML5?核心是當(dāng)時基于HTML5真的做不出好的移動App。對比Twritter等競爭對手的原生App,F(xiàn)acebook的 HTML5版本實在無法讓用戶滿意。比如Push功能,到現(xiàn)在HTML5的推送和原生的推送體驗差距依然巨大,更不用說HTML5應(yīng)用的頁面切換白屏、下拉刷新 / 側(cè)滑菜單不流暢等眾多問題??粗こ處熭p松實現(xiàn)搖一搖、二維碼、語音輸入、分享到朋友圈等功能,更是讓HTML5工程師感覺自己站錯了隊。
即使Facebook不喜歡被控制,也不能拿被用戶拋棄來冒險。而且Facebook并沒有掌握關(guān)鍵點—手機瀏覽器內(nèi)核。如果瀏覽器不跟上,其他都是白搭。
而瀏覽器在手機上的表現(xiàn)是什么呢?先看Google,Chrome性能雖高,但Android上的瀏覽器卻并非Chrome,而是WebKit改出來的一個蹩腳的Android瀏覽器;再看蘋果,iOS 上不允許其他瀏覽器引擎上架App Store,而且其他使用Safari引擎的應(yīng)用也無法調(diào)用蘋果自己的JavaScript加速引擎Nitro。結(jié)果是蘋果和Google不但不在瀏覽器上積極實現(xiàn)HTML5關(guān)于移動App所需的規(guī)范,反而對HTML5做出種種限制。
不管是當(dāng)時硬件能力不足,還是手機OS廠商的故意限制,總之結(jié)果很明顯:在移動互聯(lián)網(wǎng)的初期,一定是原生應(yīng)用生態(tài)系統(tǒng)的天下,iOS 和Android首先把自己變成老大后,其他小弟才能尋覓到成長的機會。
Facebook也好,PhoneGap也好,想在移動互聯(lián)網(wǎng)初期就分一杯羹是分不到的,但堅持下來,機會往往會出現(xiàn)。
四、HTML5 這回真的來了
HTML5在這個時間定稿,不晚不早,硬件性能更強、手機OS迭代速度下降。隨著HTML5標(biāo)準(zhǔn)定稿,一切紛爭將告一段落,現(xiàn)在,屬于HTML5的時代到來了。這個曾讓人滿懷希望,又被Facebook等眾多滿懷希望的開發(fā)者放棄的技術(shù),現(xiàn)在會告訴大家,曾經(jīng)讓各位失望的原因,現(xiàn)在已經(jīng)不存在了!這聽起來有些驚人,大家不禁要問:是真的嗎?讓我們細(xì)細(xì)分析。
業(yè)內(nèi)俗稱HTML5有“性功能”障礙。即HTML5性能不如原生、開發(fā)工具不如原生、能力調(diào)用不如原生。
這幾個問題導(dǎo)致開發(fā)者無法使用HTML5做出與原生一樣的App。然而,不管是硬件升級還是OS 廠商策略變化,以及相關(guān)軟件技術(shù)的成熟,已解決了HTML5的“性工能”障礙。
移動端硬件軍備競賽2011年,iPhone 4s的CPU是A5,現(xiàn)在iPhone 6是A8,按蘋果的歷次發(fā)布會的說法,速度共提升了7.5 倍。這3年間7.5 倍的速度提升,抹平了太多HTML5的性能問題。
蘋果、Google的策略變化,Google在2013年底發(fā)布的Android 4.4,內(nèi)置的Webview不再是蹩腳的Android WebKit瀏覽器,而是 Chromium。2012年iPhone 5發(fā)布后,HTML5在iOS 上的表現(xiàn)已令人滿意,Safari 獨家的JavaScript 加速引擎Nitro不再那么重要,不過在iOS 8發(fā)布后,蘋果還是很識趣地取消了三方程序調(diào)用Nitro的限制,現(xiàn)在任意瀏覽器或應(yīng)用調(diào)用iOS的UIWebview都可以利用Nitro加速。兩大手機操作系統(tǒng)霸主和瀏覽器巨頭的態(tài)度發(fā)生了變化,使得HTML5在手機上的發(fā)展不再受限,而且這個變化不可逆只能繼續(xù)向前,這種變化勢必會產(chǎn)生深遠(yuǎn)的影響。
軟件技術(shù)的成熟PhoneGap的發(fā)展雖然放緩,但其他產(chǎn)品技術(shù)卻成熟了。2014年的iWeb大會上,眾多廠商的產(chǎn)品提供了面向開發(fā)者免費或開源的HTML5性工能障礙的解決方案。
我們都知道瀏覽器的默認(rèn)控件樣式和原生控件樣式差別很大,一個高性能的、樣式體驗與原生控件一樣的UI框架是非常重要的,之前jQuery Mobile等產(chǎn)品的因性能不足,所以難當(dāng)此任。我們公司在iWeb大會上發(fā)布了系統(tǒng)的HTML5 “性工能缺失”的解決方案,包括解決HTML5性能問題的手機端引擎、超快的HTML5 開發(fā)IDE產(chǎn)品HBuilder、還有把40 萬原生API 封裝成JavaScript對象,以解決 HTML5 能力不足問題的Native.js 技術(shù)。
英特爾公司發(fā)布了Crosswalk引擎,可以讓Android 4.0-4.3的手機上的應(yīng)用打包Chromium引擎而不是Android WebKit。雖說未來 Android 4.4 會占據(jù)更多市場份額,但目前主流的Android手機的系統(tǒng)版本畢竟還是 4.1、4.2。
在專業(yè)方向上很多公司也做出了不錯的成績。觸控的Cocos2d-html5、Egret runtime和Ludei CocoonJS強化了Canvas的表現(xiàn),讓 HTML5游戲體驗更好;UC、獵豹等手機瀏覽器也強化了音視頻播放的表現(xiàn)。
不管是硬件升級、軟件成熟,還是操作系統(tǒng)廠商策略變化,都在強力推動HTML5的爆發(fā)。
不過要注意,我說的HTML5爆發(fā),不是指手機瀏覽器爆發(fā)。有人說HTML5不好,因為用戶討厭打開瀏覽器輸入URL 的過程。我想說這種想法是對HTML5的片面理解。HTML5!=傳統(tǒng)瀏覽器,雖然編程語言還是HTML、Javascript、CSS,但發(fā)行方式絕不是傳統(tǒng)網(wǎng)站那么簡單。HTML5 應(yīng)用的入口,反而很少是啟動瀏覽器輸入URL,它可以是存在于手機桌面的圖標(biāo)、也可以來自超級App(如微信朋友圈)、以及搜索引擎、應(yīng)用市場、廣告聯(lián)盟。到處都是它的入口。它的入口,比原生App更多。
五、原生App的顛覆
HTML5的“性工能”障礙得到解決,可以接近原生App的效果,所以它就可以替代原生App嗎?很多人認(rèn)為,即使HTML5會發(fā)展的比現(xiàn)在好,也將是與原生App各占一部分市場的格局,要求不高的長尾應(yīng)用會使用HTML5,而主流應(yīng)用仍是原生App的天下。
但我認(rèn)為這樣的想法很危險,就像HP的高層告訴沃茲:誰會在家里擺一臺電腦呢?未來HTML5肯定會顛覆原生App?!靶怨つ堋?障礙的消除,只是HTML5的劣勢被削弱,但劣勢被消除后,它的優(yōu)勢就會大放異彩,HTML5的優(yōu)勢是什么?對開發(fā)者來說:
跨平臺 在多屏年代,開發(fā)者的痛苦指數(shù)非常高,人人都期盼HTML5 能扮演救星。多套代碼、不同技術(shù)工種、業(yè)務(wù)邏輯同步,這是折磨人的過程。有點類似個人電腦早期世界,那個時候的每家電腦都有自己的操作系統(tǒng)和編程語言,開發(fā)者疲于做不同版本,其實 DOS 的盛行也很大程度是因為開發(fā)者實在沒精力給其他電腦寫程序??缙脚_技術(shù)在早期大多因為性能問題夭折,但中后期硬件能力增強后又會占據(jù)主流,因為跨平臺確實是剛需。
快速迭代 移動互聯(lián)網(wǎng)是一個快魚吃慢魚的時代,誰對用戶的需求滿足的更快,誰的試錯成本更低,誰就擁有巨大的優(yōu)勢?;ヂ?lián)網(wǎng)產(chǎn)品大多免費、且有網(wǎng)絡(luò)效應(yīng),后入者搶奪用戶的難度非常大。使用原生開發(fā),從招聘、開發(fā)、上線各個環(huán)節(jié)的效率都慢一倍以上,而且參與的人越多,溝通效率往往拖慢不止一倍。
減低成本 創(chuàng)業(yè)者融資并不容易,如何花錢更高效非常重要。如果你使用原生開發(fā)的App和競爭對手使用HTML5開發(fā)的App沒什么區(qū)別,但你的開發(fā)成本高出一倍,我相信沒有投資人會喜歡給你投錢。
導(dǎo)流入口多 HTML5應(yīng)用導(dǎo)流非常容易,超級App(如微信朋友圈)、搜索引擎、應(yīng)用市場、瀏覽器,到處都是HTML5的流量入口。而原生App的流量入口只有應(yīng)用市場。聰明的HTML5開發(fā)者當(dāng)然會玩轉(zhuǎn)各種流量入口從而取得更強的優(yōu)勢。
分發(fā)效率高 前段時間微信朋友圈風(fēng)靡一時《神經(jīng)貓》,這個游戲如果放到Appstore,絕對沒有那么多流量,超級App帶來的流量,遠(yuǎn)大于原生應(yīng)用市場。假如微信允許游戲在桌面創(chuàng)建快捷方式、假如游戲后續(xù)升級解決持續(xù)娛樂問題,未來不可想象。除了入口多、流量大,導(dǎo)流效率高也不可忽視,誰都知道:頁游和端游打同樣的廣告,廣告變用戶的轉(zhuǎn)化率,頁游遠(yuǎn)遠(yuǎn)高于端游。
HTML5 對用戶的好處是:和流量入口多、分發(fā)效率高相對應(yīng)的。大幅降低使用門檻。用戶眼睛看到一個興趣點,點擊后,就應(yīng)該立即開始滿足用戶需求。比如流媒體可以立即看,頁游可以立即玩。而目前的原生應(yīng)用市場,用戶需要這樣操作:選一個應(yīng)用、等待下載、確認(rèn)權(quán)限、等待安裝,然后點擊打開。這樣糟糕的體驗遲早要被顛覆。不管是App、游戲還是音視頻,未來都將即點即用。誰先滿足用戶這個需求,誰就制勝。
這就是所謂“天下武功,唯快不敗”。分析至此,我們可以明顯的看出,不管是站在最終用戶角度、還是站在開發(fā)者角度,HTML5必將取代原生應(yīng)用當(dāng)前的位置。并由此引發(fā)一系列顛覆。
六、還有什么會被改變?
HTML5的爆發(fā),原生App生態(tài)系統(tǒng)的顛覆,是一場產(chǎn)業(yè)革命,很多角色都會受到影響,我們來預(yù)測一番。
標(biāo)準(zhǔn)的HTML5引擎并不能解決HTML5的所有問題,擁有大流量入口的互聯(lián)網(wǎng)巨頭,莫不在思考內(nèi)嵌更優(yōu)秀的增強引擎。騰訊推出了X5瀏覽器引擎,就是看中這個機會。
目前各路瀏覽器廠商、應(yīng)用市場廠商、甚至rom廠商,都在努力整合更優(yōu)質(zhì)的瀏覽器引擎。假使微信內(nèi)嵌的webview可以運行更優(yōu)秀的canvas游戲、假使360手機助手可以發(fā)行即點即用的HTML5應(yīng)用并且能力體驗與原生一致、假使小米rom內(nèi)置更強大的 webview使得所有HTML5應(yīng)用在小米手機上運行的更流暢。所有巨頭都會聞風(fēng)而動,沒錯,這場戰(zhàn)役會是移動互聯(lián)網(wǎng)世界的二次世界大戰(zhàn)。
應(yīng)用分發(fā)市場將面臨洗牌,由于超級App的巨大流量能輕易成為HTML5應(yīng)用的入口,并且會形成大者更大的效應(yīng),傳統(tǒng)的應(yīng)用商店、甚至線下預(yù)裝,這些流量不足和效率偏低的發(fā)行模式將被擠出市場主流。本身也是超級App的大流量應(yīng)用商店,如果轉(zhuǎn)型得當(dāng),也將以發(fā)行HTML5應(yīng)用為主。
原生的廣告和統(tǒng)計SDK提供商會面臨尬尷,Google、百度等基于網(wǎng)頁的廣告和統(tǒng)計服務(wù)會取得更大的優(yōu)勢。開發(fā)者不再需要打包 SDK,引入一個Script即可。
開源技術(shù)將在移動互聯(lián)網(wǎng)領(lǐng)域更加流行。HTML的開放性造就了大量的開源產(chǎn)品,也反向促進(jìn)了HTML的繁榮。在Github上有大量的JS 框架,而原生的開源代碼數(shù)量相比甚少。而未來移動互聯(lián)網(wǎng)世界將因為開源而發(fā)展的更迅速,這里也同樣存在類Github廠商的機遇。
早期HTML只需要記事本寫幾個Tag,中期的HTML、JS、CSS比較復(fù)雜,需要更高級的文本編輯器,但HTML5到來后,它的代碼量、復(fù)雜度、開發(fā)模型將與原生開發(fā)看齊,需要類似XCode、Eclipse等專業(yè)的IDE工具來解決開發(fā)、調(diào)試的問題。一些以會使用記事本寫代碼為榮的開發(fā)者,將面臨思路轉(zhuǎn)換甚至被更高效的開發(fā)者淘汰。
HTML5的強大會引發(fā)很多安全問題,并且解決思路與原生不一樣,業(yè)內(nèi)有可能會出現(xiàn)新的安全廠商領(lǐng)導(dǎo)者。