技術(shù)專題·前端融合技術(shù)棧
原創(chuàng)
一:崔紅保
崔紅保,MUI框架設(shè)計師,前數(shù)字天堂信息科技公司研發(fā)總監(jiān),8年手機跨平臺中間件研發(fā)經(jīng)驗,目前致力于如何讓HTML5應(yīng)用達(dá)到原生App體驗。
點評內(nèi)容:
隨著HTML5規(guī)范的定稿及手機硬件的提升,webview的渲染性能大幅提升,前端工程師參與App開發(fā)已是常態(tài);現(xiàn)階段,前端主要有兩種參與模式,***種以創(chuàng)業(yè)團(tuán)隊或小團(tuán)隊為代表,特點是缺錢少人,前端工程師利用html構(gòu)造界面,css控制樣式,js實現(xiàn)業(yè)務(wù)邏輯,然后再借助5+ runtime、Cordova等HTML5增強引擎調(diào)用手機的原生設(shè)備能力(比如:攝像頭、麥克風(fēng)等),從而實現(xiàn)App完整業(yè)務(wù)的開發(fā);這種模式主要利用HTML5的跨平臺優(yōu)勢,一次開發(fā),兼容iOS、Android兩大平臺,借助mui開源框架的話,甚至可進(jìn)一步發(fā)布到微信、手機瀏覽器等平臺;第二種以一線互聯(lián)網(wǎng)公司為代表,特點是人多錢多,這類公司開發(fā)原生App則面臨著不同的挑戰(zhàn):
1、業(yè)務(wù)復(fù)雜,安裝***大,用戶在下載安裝過程中流失率較高;
2、營銷活動很多,原生開發(fā)無法應(yīng)付多變的營銷方案;因此,這類公司通過自研或集成5+ SDK等方式,核心基座使用原生開發(fā)(C/S結(jié)構(gòu)),展示類及營銷活動等則通過webview加載服務(wù)端HTML頁面(B/S結(jié)構(gòu));這種模式的***做法則是新近推出的流應(yīng)用,使用5+ API開發(fā)App,用戶***使用時采用流式下載技術(shù),邊用邊下,將資源文件下載到客戶端本地(變成C/S結(jié)構(gòu)),在保證原生體驗的同時,大幅提升用戶獲取App的體驗,點擊安裝后5秒進(jìn)入首頁。
互聯(lián)網(wǎng)的世界是開放共享的,但進(jìn)入到移動化聯(lián)網(wǎng)時代,占主導(dǎo)的原生應(yīng)用卻是獨立的,App的內(nèi)容被局限在每個App內(nèi)部;App之間不能無縫跳轉(zhuǎn),鏈接和數(shù)據(jù)不能在App之間傳遞和共享,這就是常說的“應(yīng)用孤島”,在用戶體驗層面,這實際上是歷史的倒退。然互聯(lián)互通作為用戶剛需,蘋果和Google自然也在努力解決,比iOS 9新推出Universal Links(通用鏈接),但效果依然不夠理想。反觀HTML5,卻天然具有互聯(lián)互通的基因,任何場景均可直達(dá),不存在應(yīng)用孤島的問題;舉一個廣告直達(dá)的例子,現(xiàn)在大家可見的App廣告,基本上都是App安裝廣告,比如“9.9元看老炮兒”,用戶點擊后會引導(dǎo)下載某個電影購票App,然后確認(rèn)權(quán)限安裝、啟動App進(jìn)入首頁,查找《老炮兒》的電影,進(jìn)入搶票或優(yōu)惠活動頁,整個過程需要1~2分鐘,用戶轉(zhuǎn)化率低,廣告投放收益差;而基于HTML5的流應(yīng)用卻不存在這樣的問題,用戶點擊廣告banner后,5秒后直接進(jìn)入《老炮兒》的搶票優(yōu)惠活動頁,轉(zhuǎn)化率在95%左右。從廣告轉(zhuǎn)化率和最終用戶體驗上對比,基于HTML5的流應(yīng)用明顯更勝一籌。
因此,基于HTML5的簡單、跨平臺、動態(tài)、開放的先天基因,未來前端技術(shù)必然會越來越多的參與到App開發(fā)中,這個時代真的是前端工程師的春天。
#p#
二:孫東
孫東,14年加入藝龍網(wǎng),任職h5前端架構(gòu)師,曾在當(dāng)當(dāng)網(wǎng),新浪網(wǎng),百度等互聯(lián)網(wǎng)公司工作,前端經(jīng)驗豐富,創(chuàng)立了slarkjs框架,在前端渲染,server渲染加速,云端一體化等領(lǐng)域有較深研究。
H5和APP不是天然割裂的,業(yè)務(wù)上的融合已然普遍存在。在一些經(jīng)常變動的活動頁、或不太需要性能的靜態(tài)頁,App開發(fā)者已經(jīng)習(xí)慣于使用內(nèi)嵌H5來減少多套代碼提高開發(fā)效率,而社會化分享的H5鏈接,也會通過喚起或下載,給APP導(dǎo)流。近年來,技術(shù)上H5和APP也在越走越近,通過js bridge,內(nèi)嵌的H5也可以來利用APP的功能,和既有APP實現(xiàn)的業(yè)務(wù)串聯(lián)起來。
2015年facebook發(fā)布的 react-native,可以說是前端屆的重大變革,站在了若干融合的前端框架肩膀上,***次實現(xiàn)了js框架與native 布局、語法、轉(zhuǎn)換工具的***整合,精簡了臃腫的WebKit,使用高性能的jscore解析器,所開發(fā)的APP 既具備原生開發(fā)的優(yōu)質(zhì)體驗,又具備H5開發(fā)的靈活,可以預(yù)見在2016年,優(yōu)秀的APP開發(fā)者學(xué)習(xí)js,優(yōu)秀的js開發(fā)者學(xué)習(xí)安卓/iOS,將成為普遍的現(xiàn)實。
#p#
三:孫東風(fēng)
孫東風(fēng),12年開發(fā)管理經(jīng)驗,曾就職百度、HP、東方財富,全棧工程師,技術(shù)圖書作者,出版有《例學(xué)Symbian開發(fā)》、《iPhone&iPad開發(fā) 實戰(zhàn)》、《構(gòu)建iPhone企業(yè)級應(yīng)用-基于HTML、CSS和JavaScript》,國內(nèi)最早一批從事移動互聯(lián)網(wǎng)行業(yè)的人之一。擅長移動平臺、大用戶 量級后端系統(tǒng)架構(gòu)。
點評內(nèi)容:
關(guān)于前端融合這個技術(shù)話題,業(yè)內(nèi)也有很多解決方案。但是基本上無法解決移動互聯(lián)網(wǎng)行業(yè)的本質(zhì)問題,用戶對APP的交互體驗越來越挑剔,選擇也越來越多。而原來的Native的開發(fā)方式的成本居高不下,加上響應(yīng)速度相對較慢。
目前來看,比較好的方式是采用FaceBook開源的React Native框架,從本質(zhì)上解決了H5的交互體驗差和開速開發(fā)之間的矛盾,用戶界面和業(yè)務(wù)邏輯采用JS快速開發(fā),一些特效采用Native的方式開發(fā)并提供相關(guān)接口給JS來調(diào)用,從而使得開發(fā)人員可以快速響應(yīng)業(yè)務(wù)的變化。
而React Native的目的也是“Learn once,write anywhere”,JS的業(yè)務(wù)邏輯和界面很大一部分可以重復(fù)使用在iOS、Android以及H5頁面上,大大降低開發(fā)成本。 我們本身也在基于這塊提供全棧的SaaS解決方案,從而從根本上解決創(chuàng)業(yè)公司缺少技術(shù)人員的問題,原則上只需要一個會JS的程序員即可快速響應(yīng)業(yè)務(wù)需求。
#p#
四:編輯點評
王雪燕·開發(fā)頻道編輯
點評內(nèi)容:
作為關(guān)注前端融合技術(shù)不太久的小白來說,給出有價值的點評是不可能的。那我就在這個說說個人的感受,15年很多的新技術(shù)流行開來,框架方面比較火的就屬基于 JavaScript 的開源框架 React Native,還有引用很多vue.js優(yōu)點使得編程風(fēng)格更加簡約的Weex 框架。而Node.js的出現(xiàn)促進(jìn)了棧的融合,使得前端工程師與后端越來越近,這樣一來,一些前端工程師找到了突破點,慢慢可以部署和發(fā)布整個應(yīng)用的能力。
本為客戶端腳本語言的JavaScript也加入到了后端的陣營,慢慢涉及移動端Native領(lǐng)域。就目前看來,前端開發(fā)在效率和速度上遠(yuǎn)遠(yuǎn)超過客戶端,這對于高頻應(yīng)用很適合適合,但是高頻應(yīng)用還要求體驗要求很高的話可能和native還有一定差距。
給新入前端開發(fā)人員一點小建議:面對錯綜復(fù)雜的眾多新的前端技術(shù),不要盲目都試圖去學(xué)會,對這些技術(shù)做一些了解,知道各個技術(shù)的優(yōu)缺點,可應(yīng)用的場景和定位就OK了。然后,針對所在工作環(huán)境中用到或未來可能用到的深入學(xué)習(xí)。待所需的技術(shù)掌握好,再去考慮研究其他的新技術(shù)以及如何運用新技術(shù)來把當(dāng)前工作做得更***。