Hybrid App在過去的兩年中已經(jīng)成為移動(dòng)界的核心話題,但是作為一名Web開發(fā)者來說要如何站在移動(dòng)互聯(lián)網(wǎng)的浪潮之巔呢偏塞?是選擇學(xué)習(xí)原生開發(fā)夺谁,研究Java、 Object-C印蓖、C#等語言,還是選擇繼續(xù)使用網(wǎng)頁開發(fā)京腥,容忍HTML5功能的局限性赦肃?就在開發(fā)者左右為難的情況下Hybrid App作為一個(gè)折中的解決方案誕生了。那么究竟什么才是Hybrid App呢公浪?
Hybrid App概念
Hybrid App:Hybrid Appisa mobile application that is coded in both browser-supported language and computer language. They are available through application distribution platforms such as the Apple App Store, Google Play etc. Usually, they are downloaded from the platform to a target device, such as iPhone, Android phone or Windows Phone. The subscribers need to install to run them.
總體來講他宛,Hybrid App是同時(shí)采用網(wǎng)頁語言與程序語言進(jìn)行開發(fā),通過不同的應(yīng)用商店進(jìn)行打包與分發(fā)欠气,應(yīng)用的特性更接近原生應(yīng)用而且又區(qū)別與Web應(yīng)用厅各。但是在開發(fā)過程中同時(shí)使用了網(wǎng)頁語言,所以開發(fā)成本與難度大大降低预柒。也就是說Hybrid App兼具了Native App與Web App兩者的諸多優(yōu)點(diǎn)队塘。
淺析Hybrid App
Hybrid App主要以JS+Native兩者相互調(diào)用為主,從開發(fā)層面實(shí)現(xiàn)“一次開發(fā)卫旱,多處運(yùn)行”的機(jī)制人灼,成為真正適合跨平臺的開發(fā)。目前已經(jīng)有眾多Hybrid App開發(fā)成功應(yīng)用顾翼,比如百度投放、網(wǎng)易、街旁等知名移動(dòng)應(yīng)用适贸,都是采用Hybrid App開發(fā)模式灸芳。
經(jīng)過眾多開發(fā)者與成功案例證明Hybrid App兼具了Native App的良好用戶體驗(yàn)的優(yōu)勢,也兼具了Web App使用HTML5跨平臺開發(fā)低成本的優(yōu)勢“葑耍現(xiàn)在有更多的開發(fā)者在面臨移動(dòng)平臺的選擇烙样,所以在這里根據(jù)開發(fā)中各個(gè)平臺的使用情況,針對現(xiàn)在主流的平臺進(jìn)行分析蕊肥。
主流移動(dòng)平臺分析
Hybrid App開發(fā)谒获,現(xiàn)階段主流的平臺包括PhoneGap,AppCan壁却,appMobi批狱,Titanium等,它們基于webkit開源內(nèi)核展东,使用HTML5 標(biāo)準(zhǔn)開發(fā)赔硫,適配機(jī)型簡單,支持開發(fā)者自定義插件盐肃,并能很好的應(yīng)用于商業(yè)爪膊,教育权悟,娛樂等行業(yè),成為移動(dòng)開發(fā)者的首選開發(fā)平臺推盛。
PhoneGap(Cordova)
產(chǎn)品功能:
PhoneGap是一款國外的開源移動(dòng)開發(fā)平臺峦阁。目前已經(jīng)將核心代碼貢獻(xiàn)給Apache cordova,最新版本是2.6.0小槐, 它是基于HTML拇派,CSS和JavaScript的荷辕,可以使用一些開源的框架比如jQuery Mobile凿跳,Dojo Mobile,Sencha Touch等等來提高用戶體驗(yàn)疮方,也提供了比較豐富的原生插件調(diào)用控嗜。
特性:
1. 可以使用DreamWeaver5.5編碼,現(xiàn)在使用appMobi提供的xdk 進(jìn)行模擬器開發(fā)骡显。
2. 代碼開源疆栏,開發(fā)者可以放心使用。
3. 兼容性惫谤,一次開發(fā)壁顶,多處運(yùn)行。
4. 使用JS+HTML5溜歪,成本低若专。
優(yōu)點(diǎn):
1. Native接口比較豐富,通過封裝的API可以直接訪問硬件蝴猪,比如說加速调衰,相機(jī),指南針自阱,GPS嚎莉,文件訪問等。
2. 接口文檔描述非常詳細(xì)沛豌。
3. 支持平臺多趋箩,包括iOS,Android加派,Blackberry叫确,Symbian,bada哼丈,Windows Phone 7启妹,Windows Phone 8 等。
缺點(diǎn):
1. 需要針對相應(yīng)的平臺環(huán)境配置醉旦,進(jìn)行編譯饶米,打包測試桨啃,發(fā)布等等。由于使用Hybrid 開發(fā)的用戶群檬输,大部分是web開發(fā)者照瘾,對原生開發(fā)基本不了解,這無疑給每一個(gè)開發(fā)者增加了沉重的負(fù)擔(dān)丧慈,需要對各個(gè)平臺的開發(fā)都要需要了解析命,對硬件等等都要配置,加大開發(fā)成本逃默。
2. 使用效果啟動(dòng)慢鹃愤,頁面切換響應(yīng)慢,數(shù)據(jù)請求慢完域。
3. 文檔雖比較詳細(xì)但是基本是英文软吐,對于國內(nèi)大部分用戶英文水平較差的是比較大的挑戰(zhàn)。
4. 因?yàn)槭菄獾目蚣芤魉埃夹g(shù)支持不夠到位凹耙,出現(xiàn)問題,無法排解肠仪,成為技術(shù)攻關(guān)的難點(diǎn)肖抱。
AppCan
產(chǎn)品功能:
AppCan是本土移動(dòng)開發(fā)中使用最廣的移動(dòng)平臺,網(wǎng)絡(luò)輿論而言异旧,AppCan是PhoneGap的中國化意述,但是從對AppCan實(shí)際使用,以 及轉(zhuǎn)向移動(dòng)開發(fā)的朋友們互相交流反饋泽艘,他們是截然不同的兩個(gè)移動(dòng)平臺欲险,AppCan不僅封裝了類似于PhoneGap的本地調(diào)用功能,而且封裝了 uexWindow多窗口機(jī)制匹涮,實(shí)現(xiàn)了移動(dòng)端的iframe效果天试,雖然不是開源項(xiàng)目,但一直都有面向開發(fā)者的免費(fèi)版然低,并且也有定位于企業(yè)用戶的企業(yè)版套 裝喜每,目前最新版本為2.2.X。
特性:
1. 提供的集成開發(fā)環(huán)境的IDE進(jìn)行模擬器開發(fā)雳攘。
2. 兼容性带兜,一次開發(fā),多處運(yùn)行吨灭。
3. 使用JS+HTML5 刚照,成本低。
4. 在線打包喧兄。
5. 代碼加密保護(hù)機(jī)制无畔。
優(yōu)點(diǎn):
1. 支持在線上傳證書打包啊楚,對于不了解蘋果,以及Android 環(huán)境開發(fā)的人是福音浑彰。
2. 支持更多的原生調(diào)用恭理,比如UI控件的封裝,通訊類(socket)郭变,地圖颜价,支付寶等更多的原生控件支持。
3. 擁有統(tǒng)一數(shù)據(jù)統(tǒng)計(jì)平臺诉濒,便于運(yùn)營管理開發(fā)的應(yīng)用周伦。
4. 完善的技術(shù)支持,官方論壇以及Q群建設(shè)較為完善循诉,使開發(fā)者更好的進(jìn)行交流溝通横辆。
缺點(diǎn):
1. 雖然有中文的開發(fā)文檔,但描述比較簡單茄猫,希望他們豐富他們的API文檔。
2. 免費(fèi)版本不支持自定義插件(據(jù)說企業(yè)版可以自定義插件)困肩。
3. 暫時(shí)只支持iOS划纽,Android兩大平臺,不知道什么時(shí)候推出Windows Phone 8锌畸?
4. 許多功能需要企業(yè)版才能實(shí)現(xiàn)勇劣,不過是收費(fèi)的。
Titanium
產(chǎn)品功能:
Titanium移動(dòng)平臺是所有移動(dòng)開發(fā)平臺中比較另類的潭枣,它將JavaScript和本地庫鏈接在一起比默,編譯成字節(jié)碼,針對iOS以及Android兩個(gè)平臺分別構(gòu)建一個(gè)軟件包盆犁。應(yīng)用程序使用HTML命咐,JavaScript和CSS進(jìn)行開發(fā),并支持PHP谐岁,Ruby和Python醋奠。應(yīng)用程序可以使用 Appcelerator API訪問本地特性。并提供Appcelerator Studio開發(fā)環(huán)境伊佃,由于編譯成本地代碼窜司,所以用戶體驗(yàn)是最好的。
特性:
1. 針對不同平臺生成對應(yīng)的原生包 航揉。
2. 供Appcelerator Studio開發(fā)塞祈。
優(yōu)點(diǎn):
1. 針對JS解析生成原生控件,基本達(dá)到純原生的用戶體驗(yàn)帅涂。
2. 支持自定義插件议薪。
缺點(diǎn):
1. API文檔為英文胀葱,并且比較簡單,對國內(nèi)用戶使用有一定挑戰(zhàn)笙蒙。
2. 跟PhoneGap 同樣抵屿,國外框架,技術(shù)支持困難捅位。
3. 支持Android轧葛,iOS,黑莓平臺艇搀。
4. 環(huán)境需要用戶自己搭建比較復(fù)雜尿扯。
appMobi
產(chǎn)品功能:
appMobi推出了全新開發(fā)工具XDK,這個(gè)工具使得開發(fā)者可以使用HTML5構(gòu)建網(wǎng)絡(luò)和移動(dòng)平臺的應(yīng)用程序焰雕,可以進(jìn)行屏幕仿真調(diào)試衷笋、設(shè)備實(shí)際調(diào)試和遙控調(diào)試等。
特性:
1. 使用XDK 進(jìn)行開發(fā)矩屁。
2. Html5+CSS+JS辟宗。
3. 一次開發(fā),多處運(yùn)行吝秕。
優(yōu)點(diǎn):
1. 本地接口較為豐富泊脐,并且推出有游戲加速引擎,主要包括物理引擎、離線和動(dòng)態(tài)緩存烁峭、媒體播放器容客、驗(yàn)證和加密、增強(qiáng)現(xiàn)實(shí)约郁、二維碼和QR掃描缩挑、更好的顯示支持。
缺點(diǎn):
1. 國外框架鬓梅,技術(shù)支持差供置。
目前已經(jīng)有很多移動(dòng)開發(fā)公司把PhoneGap進(jìn)行了封裝,提供打包己肮、快速模板等開發(fā)環(huán)境士袄。但是由于PhoneGap本身的局限性,如果要做長 期的商業(yè)項(xiàng)目還有很長的路要走谎僻。而國內(nèi)使用最多的AppCan娄柳,它從多個(gè)角度多種模式進(jìn)行開發(fā),可以滿足國內(nèi)從普通網(wǎng)站維護(hù)者到Web專業(yè)開發(fā)者等對于移 動(dòng)應(yīng)用的需求艘绍。加上良好的技術(shù)支持赤拒,目前已經(jīng)成為眾多開發(fā)者的首選框架。而appMobi, Titanium移動(dòng)平臺,不同的用戶根據(jù)自己的需求也有相應(yīng)的選擇挎挖。
Hybrid App这敬,一個(gè)特定時(shí)期的特定產(chǎn)品,不同的期望不同的選擇蕉朵。