在剛剛結(jié)束的支付寶“技術(shù)風(fēng)云會(huì)”論壇上,Html5再次成為5位與會(huì)者的關(guān)注焦點(diǎn)。會(huì)中也有人問及:native app 和mobile web app哪個(gè)將成為主流? 又或者h(yuǎn)tml5應(yīng)用能否替代native app?
確實(shí),html5技術(shù)再不斷的完善,也必將做更多的事情,但個(gè)人認(rèn)為,native app在這幾年還將是主流,它與生俱來的高用戶體驗(yàn)、華麗的用戶界面、較低的流量成本,并且能訪問本地資源,但native app有著較為致命的缺點(diǎn):較差的不同平臺(tái)的可移植性、較高的多個(gè)版本的升級(jí)維護(hù)成本、盈利模式的局限性。而web app在很大程度上與native app 形成互補(bǔ),較低的開發(fā)成本、跨平臺(tái)移植、升級(jí)更新更容易等等。
所以,在未來幾年web app 和 native app結(jié)合可能是一個(gè)不錯(cuò)的解決方案,Hybrid App,通俗一點(diǎn)講就是偽客戶端或者輕量級(jí)客戶端,它的展現(xiàn)模式還是類似于native app,但其實(shí)只有一個(gè)ui webView,內(nèi)嵌了html5頁面,如果覺得webView不能滿足要求,可以開發(fā)一個(gè)適合自己的瀏覽內(nèi)核,做到與客戶端一樣用戶體驗(yàn)。
打個(gè)比方,現(xiàn)在私家車已經(jīng)較為普遍,但平時(shí)我們也會(huì)使用自行車,我們可以根據(jù)不同的場(chǎng)合使用不同的交通工具,當(dāng)然我們還可以把自己車架在私家車上以備不時(shí)之需。
Html5必將帶來一場(chǎng)移動(dòng)互聯(lián)網(wǎng)的革命,作為htm5的參與者和受益者,我們將期待html5標(biāo)準(zhǔn)的統(tǒng)一和越來越多的web app應(yīng)用,并給我們帶來更多的商業(yè)化價(jià)值。
iPhone讓Native App火熱,Android讓Native App普及
5年前的1月9日,蘋果公司在Mac World大會(huì)上推出了iPhone手機(jī),這款革命性的通信終端重新定義了SmartPhone,也宣告了移動(dòng)互聯(lián)網(wǎng)的到來。人們從AppStore上下載應(yīng)用,享受著App帶來的便捷、多彩生活。一年后,互聯(lián)網(wǎng)巨鱷谷歌發(fā)布了Android系統(tǒng),極大的降低了智能手機(jī)成本,也讓Native App得到了普及。調(diào)查顯示,2010年6月美國(guó)用戶每天花在App和Web上的時(shí)間分別為43分鐘和64分鐘,而這一數(shù)據(jù)在一年后轉(zhuǎn)變?yōu)?1分鐘以及74分鐘。為什么Native App會(huì)如此受青睞?一方面是因?yàn)镹ative App擁有最佳的用戶體驗(yàn)、絕對(duì)的本地設(shè)備訪問能力、優(yōu)異的盈利模式等優(yōu)勢(shì);另一方面則是因?yàn)楫?dāng)時(shí)的wap站點(diǎn)還太弱小。
HTML5讓web回歸,wap站點(diǎn)向Mobile Web App轉(zhuǎn)變
當(dāng)《連線》雜志拋出《The Web Is Dead , Long Live the Internet》的論調(diào)時(shí),迅速引起了整個(gè)行業(yè)的討論,而大部分web支持者將希望寄托在HTML5身上。隨著智能手機(jī)的普及,移動(dòng)瀏覽器進(jìn)行著競(jìng)爭(zhēng),基于Webkit引擎的終端覆蓋了龐大的智能移動(dòng)終端市場(chǎng),移動(dòng)設(shè)備對(duì)于HTML5的支持完全達(dá)到了可應(yīng)用的水平。另一方面,Native App的高成本、低效率也讓HTML5下的移動(dòng)web重新得到關(guān)注。
2010年開始,淘寶、支付寶、騰訊、網(wǎng)易、新浪等國(guó)內(nèi)互聯(lián)網(wǎng)巨頭都開始對(duì)wap進(jìn)行重新的設(shè)計(jì),HTML5觸屏版陸續(xù)上線。至此,HTML5完成了移動(dòng)web開發(fā)的一次變革:
不可避免的,wap的轉(zhuǎn)型也給移動(dòng)互聯(lián)網(wǎng)企業(yè)帶來了新的挑戰(zhàn):(1)產(chǎn)品經(jīng)理、交互設(shè)計(jì)師、視覺設(shè)計(jì)師需要更多的創(chuàng)新適應(yīng)HTML5帶來的新變化;(2)生態(tài)產(chǎn)業(yè)鏈的形成需要時(shí)間,Mobile Web App如何被“發(fā)現(xiàn)”、“保留”、“返回”還需要進(jìn)一步探討;(3)大量的前端人才需求;(4)wap site與Mobile Web App以及不同版本Mobile Web App間的兼容開發(fā)問題,多版本適配成為新的架構(gòu)挑戰(zhàn)。
HTML5讓Native App傾斜,Hybrid或許是正道
HTML5下的Mobile Web App確實(shí)擁有了可以和Native App叫板的資格,但是就像C/S和B/S模式同時(shí)存在一樣,Mobile Web App與Native App誰也沒法代替對(duì)方。喬布斯曾在受采訪時(shí)說過:“Web是未來,雖然現(xiàn)階段Native給了用戶更好的體驗(yàn)。如果現(xiàn)在的開發(fā)者不有效的利用Web技術(shù),那他就落伍了。但如果過分依賴Web,完全不用Native那也未必就是好事”。
隨著業(yè)務(wù)的發(fā)展和新需求的出現(xiàn),產(chǎn)品經(jīng)理們成天貪婪的追問“你那個(gè)HTML5可以獲取手機(jī)硬件信息不,什么時(shí)候能調(diào)攝像頭???”,很可惜主流的移動(dòng)瀏覽器并沒有將這些API開放出來,web依舊需要native去做一些底層的事;相對(duì)的,native的工程師也期望自己的應(yīng)用里面可以加入HTML5,提高開發(fā)的效率,適應(yīng)快速的需求變化。
顯然,只有將這兩種模式進(jìn)行融合才能應(yīng)對(duì)新的挑戰(zhàn),HTML5讓native產(chǎn)生了傾斜,“Hybrid”成為較好的選擇。細(xì)細(xì)想來,Hybrid應(yīng)用可以使用HTML5輕松呈現(xiàn)復(fù)雜排版內(nèi)容,js也能調(diào)用移動(dòng)終端底層的API,產(chǎn)品開發(fā)效率得到了很大的提高,并且兼容各平臺(tái),商業(yè)運(yùn)作成本比較低。當(dāng)然,開發(fā)一個(gè)成功Hybrid應(yīng)用并不容易,需要native工程師,前端工程師以及后臺(tái)開發(fā)人員的通力合作。
當(dāng)我們開始構(gòu)建Hybrid App的時(shí)候,如何去“Bridging the gap”是一大挑戰(zhàn)。其實(shí),實(shí)際操作并不如想象的那么困難。以Android為例,它的Webview中有一個(gè)addJavascriptInterface方法,通過這個(gè)方法可以將App運(yùn)行過程中的java對(duì)象暴露給js調(diào)用。同樣的iOS,WindowsPhone也都存在著這樣的接口。
因此,對(duì)于技術(shù)實(shí)力超強(qiáng)的公司來說,自行實(shí)現(xiàn)Hybrid框架是可行的,也能在遇到問題時(shí)及時(shí)進(jìn)行完善。而對(duì)于大部分公司來說,使用現(xiàn)有的Hybrid框架效率會(huì)更高,而PhoneGap無疑是最佳的選擇。在被adobe收購(gòu)并捐獻(xiàn)給apache基金后,PhoneGap得到了更多的支持,更新速度也開始加快,它的Plugin機(jī)制更是可以滿足HTML頁面絕大部分的native擴(kuò)展需求。“HTML5+PhoneGap”成為了主流的App開發(fā)方案。
需要清醒的是,雖然Hybrid很美好,但是在這種轉(zhuǎn)型過程中同樣也會(huì)遇到很多的挑戰(zhàn):
(1)哪些業(yè)務(wù)子應(yīng)用應(yīng)該使用web、哪些應(yīng)該加入native;
(2)Hybrid的性能問題;
(3)多種模式下的產(chǎn)品及技術(shù)整合。
HTML5下的移動(dòng)App架構(gòu)
在HTML5的影響下,wap走向了Web App,native融合HTML頁面變身為Hybrid。為了適應(yīng)這種變革,支付寶無線wap以及App不斷進(jìn)行著調(diào)整,一種可行的架構(gòu)應(yīng)運(yùn)而生。
這種架構(gòu)的特點(diǎn)是:
客戶端方面,融入了Hybrid框架。出于支付寶業(yè)務(wù)的特殊性,性能要求高、有特殊需求、現(xiàn)存的以及不經(jīng)常變更的應(yīng)用采用native完成;而對(duì)于變化快、native要求較低的業(yè)務(wù)使用Hybrid方式完成,并使用HTML5作為頁面展現(xiàn)。
業(yè)務(wù)開發(fā)過程中,對(duì)單業(yè)務(wù)設(shè)計(jì)多套模板實(shí)現(xiàn)頁面級(jí)設(shè)備定制;當(dāng)瀏覽器進(jìn)行web訪問,根據(jù)HTTP請(qǐng)求頭的User-Agent信息進(jìn)行版本適配和展現(xiàn)。
在開發(fā)過程中,不斷沉淀出業(yè)務(wù)相關(guān)的javascript組件,方便復(fù)用以及Hybrid與Web兩種模式的js兼容。
聯(lián)系客服