Hybrid App在過去的兩年中已經(jīng)成為移動界的核心話題,但是作為一名Web開發(fā)者來說要如何站在移動互聯(lián)網(wǎng)的浪潮之巔呢?是選擇學(xué)習(xí)原生開發(fā),研究Java、Object-C、C#等語言,還是選擇繼續(xù)使用網(wǎng)頁開發(fā),容忍HTML5功能的局限性?就在開發(fā)者左右為難的情況下Hybrid App作為一個折中的解決方案誕生了。那么究竟什么才是Hybrid App呢?
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.
總體來講,Hybrid App是同時采用網(wǎng)頁語言與程序語言進(jìn)行開發(fā),通過不同的應(yīng)用商店進(jìn)行打包與分發(fā),應(yīng)用的特性更接近原生應(yīng)用而且又區(qū)別與Web應(yīng)用。但是在開發(fā)過程中同時使用了網(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)易、街旁等知名移動應(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ā)者在面臨移動平臺的選擇,所以在這里根據(jù)開發(fā)中各個平臺的使用情況,針對現(xiàn)在主流的平臺進(jìn)行分析。
主流移動平臺分析
Hybrid App開發(fā),現(xiàn)階段主流的平臺包括PhoneGap,AppCan,appMobi,Titanium等,它們基于webkit開源內(nèi)核,使用HTML5 標(biāo)準(zhǔn)開發(fā),適配機(jī)型簡單,支持開發(fā)者自定義插件,并能很好的應(yīng)用于商業(yè),教育,娛樂等行業(yè),成為移動開發(fā)者的首選開發(fā)平臺。
PhoneGap(Cordova)
產(chǎn)品功能:
PhoneGap是一款國外的開源移動開發(fā)平臺。目前已經(jīng)將核心代碼貢獻(xiàn)給Apache cordova,最新版本是2.6.0, 它是基于HTML,CSS和JavaScript的,可以使用一些開源的框架比如jQuery Mobile,Dojo Mobile,Sencha Touch等等來提高用戶體驗(yàn),也提供了比較豐富的原生插件調(diào)用。
特性:
1. 可以使用DreamWeaver 5.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ā)基本不了解,這無疑給每一個開發(fā)者增加了沉重的負(fù)擔(dān),需要對各個平臺的開發(fā)都要需要了解,對硬件等等都要配置,加大開發(fā)成本。
2. 使用效果啟動慢,頁面切換響應(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是本土移動開發(fā)中使用最廣的移動平臺,網(wǎng)絡(luò)輿論而言,AppCan是PhoneGap的中國化,但是從對AppCan實(shí)際使用,以及轉(zhuǎn)向移動開發(fā)的朋友們互相交流反饋,他們是截然不同的兩個移動平臺,AppCan不僅封裝了類似于PhoneGap的本地調(diào)用功能,而且封裝了uexWindow多窗口機(jī)制,實(shí)現(xiàn)了移動端的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)計平臺,便于運(yùn)營管理開發(fā)的應(yīng)用。
4. 完善的技術(shù)支持,官方論壇以及Q群建設(shè)較為完善,使開發(fā)者更好的進(jìn)行交流溝通。
缺點(diǎn):
1. 雖然有中文的開發(fā)文檔,但描述比較簡單,希望他們豐富他們的API文檔。
2. 免費(fèi)版本不支持自定義插件(據(jù)說企業(yè)版可以自定義插件)。
3. 暫時只支持iOS,Android兩大平臺,不知道什么時候推出Windows Phone 8?
4. 許多功能需要企業(yè)版才能實(shí)現(xiàn),不過是收費(fèi)的。
Titanium
產(chǎn)品功能:
Titanium移動平臺是所有移動開發(fā)平臺中比較另類的,它將JavaScript和本地庫鏈接在一起,編譯成字節(jié)碼,針對iOS以及Android兩個平臺分別構(gòu)建一個軟件包。應(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,這個工具使得開發(fā)者可以使用HTML5構(gòu)建網(wǎng)絡(luò)和移動平臺的應(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. 本地接口較為豐富,并且推出有游戲加速引擎,主要包括物理引擎、離線和動態(tài)緩存、媒體播放器、驗(yàn)證和加密、增強(qiáng)現(xiàn)實(shí)、二維碼和QR掃描、更好的顯示支持。
缺點(diǎn):
1. 國外框架,技術(shù)支持差。
目前已經(jīng)有很多移動開發(fā)公司把PhoneGap進(jìn)行了封裝,提供打包、快速模板等開發(fā)環(huán)境。但是由于PhoneGap本身的局限性,如果要做長期的商業(yè)項(xiàng)目還有很長的路要走。而國內(nèi)使用最多的AppCan,它從多個角度多種模式進(jìn)行開發(fā),可以滿足國內(nèi)從普通網(wǎng)站維護(hù)者到Web專業(yè)開發(fā)者等對于移動應(yīng)用的需求。加上良好的技術(shù)支持,目前已經(jīng)成為眾多開發(fā)者的首選框架。而appMobi, Titanium移動平臺,不同的用戶根據(jù)自己的需求也有相應(yīng)的選擇。
Hybrid App,一個特定時期的特定產(chǎn)品,不同的期望不同的選擇。