Hybrid APPS 我為什么看好你—獻(xiàn)禮前端工程師
Web從最開(kāi)始,用html標(biāo)簽這種最簡(jiǎn)單的方式搭建門(mén)戶網(wǎng)站、論壇,那時(shí)候能做個(gè)網(wǎng)站感覺(jué)很牛叉的樣子。后來(lái)又有了Ajax方式,可以動(dòng)態(tài)的獲取數(shù)據(jù),讓網(wǎng)頁(yè)能不刷新而完成更新。之后又有了HTML5,結(jié)合JS、CSS3到達(dá)另一個(gè)高度,通過(guò)Web可以用很炫的方式實(shí)現(xiàn)不錯(cuò)的功能效果。這是PC時(shí)代;現(xiàn)在到了移動(dòng)互聯(lián)網(wǎng)時(shí)代,有人唱衰Web,也有人高唱Web。不管怎么樣,Web在以它的方式而野蠻生長(zhǎng)著。生長(zhǎng)的方式不是以我們的主觀意愿的,而是這個(gè)時(shí)代需要Web,需要這種方式來(lái)實(shí)現(xiàn)一些東西,人們希望有這么一個(gè)東西能像一個(gè)樹(shù),在這個(gè)炎熱的夏天提供一處陰涼,愿意為它施肥澆水,讓它再大些再高些。因?yàn)樾枰援a(chǎn)生,而不是因?yàn)榇嬖谒钥捎谩?/p>
1、到達(dá)一個(gè)拐點(diǎn)
技術(shù)上:從原先的一根筋變成現(xiàn)在的兩頭堵了。在2014年10月底,W3C宣布HTML5正式定稿。這個(gè)時(shí)間,不晚不早,硬件性能更強(qiáng)、手機(jī)OS迭代速度下降。優(yōu)勢(shì)是跨平臺(tái),更新及時(shí)。可用和原生代碼結(jié)合實(shí)現(xiàn)互相的調(diào)用,機(jī)制上是完全可以的。只是看你用不用而已。其中OS X Mavericks和iOS 7引入了JavaScriptCore庫(kù),它把WebKit的JavaScript引擎用Objective-C封裝,提供了簡(jiǎn)單,快速以及安全的方式接入世界上***的語(yǔ)言。不管你愛(ài)它還是恨它,JavaScript的普遍存在使得程序員、工具以及融合到OSX和iOS里這樣超快的虛擬機(jī)中資源的使用都大幅增長(zhǎng)。
生態(tài)上:很多的公司和個(gè)人在Web這個(gè)領(lǐng)域一直的添磚加瓦,不管是Cordova、AppCan、ApiCloud、trigger.io、node-webkit、ReactNative等等,都在從各個(gè)方向突圍,讓大家看到了希望。
硬件上:系統(tǒng)版本和瀏覽器已經(jīng)可以很好的支持html5和css3硬件加速。Google在2013年底發(fā)布的Android4.4,內(nèi)置的Webview不再是蹩腳的Android WebKit瀏覽器,而是Chromium,性能大幅提升。從***的Android 5.0開(kāi)始,Webview可以通過(guò)GooglePlay Store實(shí)時(shí)更新,和Chrome的升級(jí)保持一致,用戶就可以不刷機(jī)享受到***的瀏覽器引擎;再看Apple方面,2012年iPhone5發(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)算也成為可能。
實(shí)現(xiàn)上:具體到這個(gè)層面,最初是直接嵌網(wǎng)頁(yè)的方式;后來(lái)是打包JS、HTML、CSS到本地;這兩種方式都有優(yōu)缺點(diǎn),不能滿足我們要求加載快而且實(shí)時(shí)更新。于是出現(xiàn)了第3種,可以用增量更新zip包的方式來(lái)實(shí)現(xiàn)本地加載和快速更新的目的。這些已經(jīng)在超級(jí)app上實(shí)現(xiàn),并且效果很好,下面內(nèi)容有講到。
2、需求要求這樣
而對(duì)于開(kāi)發(fā)者而言,開(kāi)發(fā)者為什么不愿意開(kāi)發(fā)WP版本,很多時(shí)候是因?yàn)楣ぷ髁刻螅税姹具m配,分辨率調(diào)整等,一旦有新版本推出,在原生App中開(kāi)發(fā)者不得不等待多達(dá)兩周時(shí)間去接受審核。另外內(nèi)容維護(hù)上也很麻煩,這也是為什么有些媒體開(kāi)始放棄原生App鼓勵(lì)讀者使用WebApp的原因。除此之外,跨平臺(tái)在多屏?xí)r代給開(kāi)發(fā)者非常痛苦的體驗(yàn),人們都期待當(dāng)年Java的一次編譯處處運(yùn)行的理想情況。HTML5目前正在扮演一個(gè)開(kāi)發(fā)者救星的角色。
全新的互聯(lián)網(wǎng)入口超級(jí)App+WebApp的時(shí)代來(lái)臨
你手機(jī)里裝了多少App,最常用的有哪些?
可能最多的回答是,我用「微信、QQ,或者其他瀏覽器」等等所謂的超級(jí)App。
在超級(jí)APP里Web正在扮演著重要的角色,發(fā)揮她的快速、跨平臺(tái)、輕的特性。
3、已經(jīng)被驗(yàn)證過(guò)
手Q中群部落、吃喝玩樂(lè)、主題中心等核心業(yè)務(wù)。微信的[發(fā)現(xiàn)]。新版支付寶的[商家]、京東、淘寶這些電商更是用到了各處。這些超級(jí)APP已經(jīng)在某些場(chǎng)景下用的不亦樂(lè)乎,發(fā)揮Web的優(yōu)勢(shì),為我們所用。
4、農(nóng)村包圍城市
從PC到移動(dòng)互聯(lián)網(wǎng)時(shí)代,Web正在符合時(shí)代的需求而生長(zhǎng)著。沒(méi)有一種語(yǔ)言是像Web一樣,隨著時(shí)代的發(fā)展而不斷的修訂,并能符合這個(gè)時(shí)代發(fā)展的速度。Java做不到、Objective-C也做不到。雖然出身草根,但是像水一樣,隨形而動(dòng),生命力旺盛。還是讓我們擁抱變化,擁抱草根出身的Web。
獻(xiàn)給一直堅(jiān)守在Web前端的工程師們