主流移動(dòng)開(kāi)發(fā)平臺(tái)分析
Hybrid App概念
Hybrid App:Hybrid App is a 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.
總體來(lái)講,Hybrid App是同時(shí)采用網(wǎng)頁(yè)語(yǔ)言與程序語(yǔ)言進(jìn)行開(kāi)發(fā),通過(guò)不同的應(yīng)用商店進(jìn)行打包與分發(fā),應(yīng)用的特性更接近原生應(yīng)用而且又區(qū)別與Web應(yīng)用。但是在開(kāi)發(fā)過(guò)程中同時(shí)使用了網(wǎng)頁(yè)語(yǔ)言,所以開(kāi)發(fā)成本與難度大大降低。也就是說(shuō)Hybrid App兼具了Native App與Web App兩者的諸多優(yōu)點(diǎn)。
淺析Hybrid App
Hybrid App主要以JS+Native兩者相互調(diào)用為主,從開(kāi)發(fā)層面實(shí)現(xiàn)“一次開(kāi)發(fā),多處運(yùn)行”的機(jī)制,成為真正適合跨平臺(tái)的開(kāi)發(fā)。目前已經(jīng)有眾多Hybrid App開(kāi)發(fā)成功應(yīng)用,比如百度、網(wǎng)易、街旁等知名移動(dòng)應(yīng)用,都是采用Hybrid App開(kāi)發(fā)模式。
經(jīng)過(guò)眾多開(kāi)發(fā)者與成功案例證明Hybrid App兼具了Native App的良好用戶體驗(yàn)的優(yōu)勢(shì),也兼具了Web App使用HTML5跨平臺(tái)開(kāi)發(fā)低成本的優(yōu)勢(shì)。現(xiàn)在有更多的開(kāi)發(fā)者在面臨移動(dòng)平臺(tái)的選擇,所以在這里根據(jù)開(kāi)發(fā)中各個(gè)平臺(tái)的使用情況,針對(duì)現(xiàn)在主流的平臺(tái)進(jìn)行分析。
主流移動(dòng)平臺(tái)分析
Hybrid App開(kāi)發(fā),現(xiàn)階段主流的平臺(tái)包括PhoneGap,AppCan,appMobi,Titanium等,它們基于webkit開(kāi)源內(nèi)核,使用HTML5 標(biāo)準(zhǔn)開(kāi)發(fā),適配機(jī)型簡(jiǎn)單,支持開(kāi)發(fā)者自定義插件,并能很好的應(yīng)用于商業(yè),教育,娛樂(lè)等行業(yè),成為移動(dòng)開(kāi)發(fā)者的***開(kāi)發(fā)平臺(tái)。
PhoneGap(Cordova)
產(chǎn)品功能:
PhoneGap是一款國(guó)外的開(kāi)源移動(dòng)開(kāi)發(fā)平臺(tái)。目前已經(jīng)將核心代碼貢獻(xiàn)給Apache cordova,***版本是2.6.0, 它是基于HTML,CSS和JavaScript的,可以使用一些開(kāi)源的框架比如jQuery Mobile,Dojo Mobile,Sencha Touch等等來(lái)提高用戶體驗(yàn),也提供了比較豐富的原生插件調(diào)用。
特性:
1. 可以使用DreamWeaver 5.5編碼,現(xiàn)在使用appMobi提供的xdk 進(jìn)行模擬器開(kāi)發(fā)。
2. 代碼開(kāi)源,開(kāi)發(fā)者可以放心使用。
3. 兼容性,一次開(kāi)發(fā),多處運(yùn)行。
4. 使用JS+HTML5,成本低。
優(yōu)點(diǎn):
1. Native接口比較豐富,通過(guò)封裝的API可以直接訪問(wèn)硬件,比如說(shuō)加速,相機(jī),指南針,GPS,文件訪問(wèn)等。
2. 接口文檔描述非常詳細(xì)。
3. 支持平臺(tái)多,包括iOS,Android,Blackberry,Symbian,bada,Windows Phone 7,Windows Phone 8 等。
缺點(diǎn):
1. 需要針對(duì)相應(yīng)的平臺(tái)環(huán)境配置,進(jìn)行編譯,打包測(cè)試,發(fā)布等等。由于使用Hybrid 開(kāi)發(fā)的用戶群,大部分是web開(kāi)發(fā)者,對(duì)原生開(kāi)發(fā)基本不了解,這無(wú)疑給每一個(gè)開(kāi)發(fā)者增加了沉重的負(fù)擔(dān),需要對(duì)各個(gè)平臺(tái)的開(kāi)發(fā)都要需要了解,對(duì)硬件等等都要配置,加大開(kāi)發(fā)成本。
2. 使用效果啟動(dòng)慢,頁(yè)面切換響應(yīng)慢,數(shù)據(jù)請(qǐng)求慢。
3. 文檔雖比較詳細(xì)但是基本是英文,對(duì)于國(guó)內(nèi)大部分用戶英文水平較差的是比較大的挑戰(zhàn)。
4. 因?yàn)槭菄?guó)外的框架,技術(shù)支持不夠到位,出現(xiàn)問(wèn)題,無(wú)法排解,成為技術(shù)攻關(guān)的難點(diǎn)。
AppCan
產(chǎn)品功能:
AppCan是本土移動(dòng)開(kāi)發(fā)中使用最廣的移動(dòng)平臺(tái),網(wǎng)絡(luò)輿論而言,AppCan是PhoneGap的中國(guó)化,但是從對(duì)AppCan實(shí)際使用,以及轉(zhuǎn)向移動(dòng)開(kāi)發(fā)的朋友們互相交流反饋,他們是截然不同的兩個(gè)移動(dòng)平臺(tái),AppCan不僅封裝了類似于PhoneGap的本地調(diào)用功能,而且封裝了uexWindow多窗口機(jī)制,實(shí)現(xiàn)了移動(dòng)端的iframe效果,雖然不是開(kāi)源項(xiàng)目,但一直都有面向開(kāi)發(fā)者的免費(fèi)版,并且也有定位于企業(yè)用戶的企業(yè)版套裝,目前***版本為2.2.X。
特性:
1. 提供的集成開(kāi)發(fā)環(huán)境的IDE進(jìn)行模擬器開(kāi)發(fā)。
2. 兼容性,一次開(kāi)發(fā),多處運(yùn)行。
3. 使用JS+HTML5 ,成本低。
4. 在線打包。
5. 代碼加密保護(hù)機(jī)制。
優(yōu)點(diǎn):
1. 支持在線上傳證書(shū)打包,對(duì)于不了解蘋(píng)果,以及Android 環(huán)境開(kāi)發(fā)的人是福音。
2. 支持更多的原生調(diào)用,比如UI控件的封裝,通訊類(socket),地圖,支付寶等更多的原生控件支持。
3. 擁有統(tǒng)一數(shù)據(jù)統(tǒng)計(jì)平臺(tái),便于運(yùn)營(yíng)管理開(kāi)發(fā)的應(yīng)用。
4. 完善的技術(shù)支持,官方論壇以及Q群建設(shè)較為完善,使開(kāi)發(fā)者更好的進(jìn)行交流溝通。
缺點(diǎn):
1. 雖然有中文的開(kāi)發(fā)文檔,但描述比較簡(jiǎn)單,希望他們豐富他們的API文檔。
2. 免費(fèi)版本不支持自定義插件(據(jù)說(shuō)企業(yè)版可以自定義插件)。
3. 暫時(shí)只支持iOS,Android兩大平臺(tái),不知道什么時(shí)候推出Windows Phone 8?
4. 許多功能需要企業(yè)版才能實(shí)現(xiàn),不過(guò)是收費(fèi)的。
Titanium
產(chǎn)品功能:
Titanium移動(dòng)平臺(tái)是所有移動(dòng)開(kāi)發(fā)平臺(tái)中比較另類的,它將JavaScript和本地庫(kù)鏈接在一起,編譯成字節(jié)碼,針對(duì)iOS以及Android兩個(gè)平臺(tái)分別構(gòu)建一個(gè)軟件包。應(yīng)用程序使用HTML,JavaScript和CSS進(jìn)行開(kāi)發(fā),并支持PHP,Ruby和Python。應(yīng)用程序可以使用 Appcelerator API訪問(wèn)本地特性。并提供Appcelerator Studio開(kāi)發(fā)環(huán)境,由于編譯成本地代碼,所以用戶體驗(yàn)是***的。
特性:
1. 針對(duì)不同平臺(tái)生成對(duì)應(yīng)的原生包 。
2. 供Appcelerator Studio開(kāi)發(fā)。
優(yōu)點(diǎn):
1. 針對(duì)JS解析生成原生控件,基本達(dá)到純?cè)挠脩趔w驗(yàn)。
2. 支持自定義插件。
缺點(diǎn):
1. API文檔為英文,并且比較簡(jiǎn)單,對(duì)國(guó)內(nèi)用戶使用有一定挑戰(zhàn)。
2. 跟PhoneGap 同樣,國(guó)外框架,技術(shù)支持困難。
3. 支持Android,iOS,黑莓平臺(tái)。
4. 環(huán)境需要用戶自己搭建比較復(fù)雜。
appMobi
產(chǎn)品功能:
appMobi推出了全新開(kāi)發(fā)工具XDK,這個(gè)工具使得開(kāi)發(fā)者可以使用HTML5構(gòu)建網(wǎng)絡(luò)和移動(dòng)平臺(tái)的應(yīng)用程序,可以進(jìn)行屏幕仿真調(diào)試、設(shè)備實(shí)際調(diào)試和遙控調(diào)試等。
特性:
1. 使用XDK 進(jìn)行開(kāi)發(fā)。
2. Html5+CSS+JS。
3. 一次開(kāi)發(fā),多處運(yùn)行。
優(yōu)點(diǎn):
1. 本地接口較為豐富,并且推出有游戲加速引擎,主要包括物理引擎、離線和動(dòng)態(tài)緩存、媒體播放器、驗(yàn)證和加密、增強(qiáng)現(xiàn)實(shí)、二維碼和QR掃描、更好的顯示支持。
缺點(diǎn):
1. 國(guó)外框架,技術(shù)支持差。
目前已經(jīng)有很多移動(dòng)開(kāi)發(fā)公司把PhoneGap進(jìn)行了封裝,提供打包、快速模板等開(kāi)發(fā)環(huán)境。但是由于PhoneGap本身的局限性,如果要做長(zhǎng)期的商業(yè)項(xiàng)目還有很長(zhǎng)的路要走。而國(guó)內(nèi)使用最多的AppCan,它從多個(gè)角度多種模式進(jìn)行開(kāi)發(fā),可以滿足國(guó)內(nèi)從普通網(wǎng)站維護(hù)者到Web專業(yè)開(kāi)發(fā)者等對(duì)于移動(dòng)應(yīng)用的需求。加上良好的技術(shù)支持,目前已經(jīng)成為眾多開(kāi)發(fā)者的***框架。而appMobi, Titanium移動(dòng)平臺(tái),不同的用戶根據(jù)自己的需求也有相應(yīng)的選擇。
Hybrid App,一個(gè)特定時(shí)期的特定產(chǎn)品,不同的期望不同的選擇。