開(kāi)發(fā)路線(xiàn)問(wèn)題:原生、HTML5與混合之優(yōu)勢(shì)及短板
以下三種方式可算是移動(dòng)應(yīng)用程序開(kāi)發(fā)工作的主要實(shí)現(xiàn)思路。我們將對(duì)每一種進(jìn)行簡(jiǎn)要介紹,其適用范圍、優(yōu)勢(shì)與短板以及一份與之相對(duì)應(yīng)之開(kāi)發(fā)工具清單。
原生應(yīng)用程序開(kāi)發(fā)
在原生應(yīng)用程序開(kāi)發(fā)機(jī)制當(dāng)中,移動(dòng)應(yīng)用會(huì)專(zhuān)門(mén)面向特定移動(dòng)平臺(tái)進(jìn)行編寫(xiě),其中包括iOS、Android以及Windows Phone。這類(lèi)應(yīng)用駐留在移動(dòng)設(shè)備當(dāng)中,而且通常利用由平臺(tái)制造商提供的開(kāi)發(fā)工具編寫(xiě)而成。其代碼無(wú)法在不同平臺(tái)之間隨意遷移或者重復(fù)使用。
***適用范圍
面向消費(fèi)者之應(yīng)用程序
游戲
擁有高強(qiáng)度圖形及多媒體處理量的應(yīng)用程序
優(yōu)勢(shì)
- 通常擁有比Web應(yīng)用或者混合型應(yīng)用更出色的執(zhí)行效果,特別是在游戲類(lèi)應(yīng)用當(dāng)中。
- 能夠訪(fǎng)問(wèn)到設(shè)備之上的全部傳感器、硬件、聯(lián)系人信息以及通知內(nèi)容。
- 通過(guò)公共應(yīng)用程序商店進(jìn)行發(fā)布——包括蘋(píng)果App Store、Google Play以及Windows Store。
- 在安裝完成之后,對(duì)應(yīng)圖標(biāo)會(huì)立即出現(xiàn)在設(shè)備的主屏幕當(dāng)中。
短板
- 優(yōu)秀開(kāi)發(fā)人員較為匱乏
- 在面向多種平臺(tái)構(gòu)建多款應(yīng)用程序時(shí)成本非常昂貴
- 為每種平臺(tái)進(jìn)行彼此獨(dú)立的代碼庫(kù)管理不僅成本高昂而且極耗時(shí)間
- 開(kāi)發(fā)周期更長(zhǎng)
- 不同平臺(tái)之上的各個(gè)版本可能由于開(kāi)發(fā)時(shí)長(zhǎng)不同而導(dǎo)致無(wú)法同步
- 由于不同應(yīng)用程序商店的審批周期有所區(qū)別,因此應(yīng)用程序發(fā)布有可能因此受到影響
開(kāi)發(fā)工具
- 蘋(píng)果iOS: XCode
- Android: 谷歌Android Studio
- Windows Phone: Visual Studio
#p#
利用HTML 5、CSS以及JavaScript開(kāi)發(fā)之Web應(yīng)用程序
Web應(yīng)用程序由HTML 5、CSS以及JavaScript構(gòu)建而成。這類(lèi)應(yīng)用可以通過(guò)移動(dòng)設(shè)備上的瀏覽器進(jìn)行訪(fǎng)問(wèn)且具備交互特性,但其無(wú)法訪(fǎng)問(wèn)移動(dòng)設(shè)備上的聯(lián)系人列表以及傳感器等內(nèi)置機(jī)制。這類(lèi)應(yīng)用只需一次開(kāi)發(fā)并部署在Web服務(wù)器之上即可接受各類(lèi)平臺(tái)用戶(hù)的使用。
***適用范圍
企業(yè)與企業(yè)以及企業(yè)與員工間所使用的內(nèi)部服務(wù)及資源應(yīng)用。
優(yōu)勢(shì)
- 此類(lèi)應(yīng)用利用Web標(biāo)準(zhǔn)構(gòu)建而成,但在設(shè)計(jì)中往往作為“響應(yīng)式”應(yīng)用存在
- 企業(yè)能夠利用現(xiàn)有Web開(kāi)發(fā)人員創(chuàng)建此類(lèi)應(yīng)用程序
- 成本***的應(yīng)用程序構(gòu)建方式
- 只需要維護(hù)單一一套代碼庫(kù)
- 能夠快速實(shí)現(xiàn)修改、更新與部署
短板
- 界面與標(biāo)準(zhǔn)原生應(yīng)用之間可能存在較大出入
- 性能表現(xiàn),特別是在游戲以及某些強(qiáng)調(diào)圖形與多媒體處理負(fù)載的場(chǎng)景當(dāng)中,無(wú)法與原生應(yīng)用程序相提并論
- 無(wú)法在應(yīng)用程序商店當(dāng)中上架,這意味著不利于向消費(fèi)級(jí)客戶(hù)直接推廣
- 可能無(wú)法訪(fǎng)問(wèn)全部傳感器、硬件以及通知等設(shè)備之上內(nèi)置的功能
- 圖標(biāo)無(wú)法直接出現(xiàn)在設(shè)備主屏幕之上,除非用戶(hù)手動(dòng)進(jìn)行添加
開(kāi)發(fā)工具
任何一款能夠利用HTML 5、JavaScript以及CSS構(gòu)建Web頁(yè)面的開(kāi)發(fā)工具都能夠開(kāi)發(fā)移動(dòng)Web應(yīng)用。其中部分高人氣工具包括:
AngularJS ,一款由谷歌負(fù)責(zé)維護(hù)的開(kāi)源Web應(yīng)用程序框架
Ember.js ,一款開(kāi)源JavaScript Web應(yīng)用程序開(kāi)發(fā)框架
React ,一套開(kāi)源JavaScript庫(kù),由Facebook及其它多家廠(chǎng)商負(fù)責(zé)構(gòu)建及維護(hù)
Backbone.js ,一套JavaScript庫(kù)
JQuery ,一套JavaScript庫(kù)
Meteor ,一款開(kāi)源JavaScript框架
Bootstrap與Bootstrap Javascript ,一套被廣泛視為”移動(dòng)優(yōu)先“型的CSS框架以及一套強(qiáng)調(diào)“響應(yīng)式”特性的框架
#p#
混合應(yīng)用程序
混合應(yīng)用程序首先利用HTML 5、CSS以及JavaScript構(gòu)建成形,而后由打包工具將其轉(zhuǎn)化為能夠在不同移動(dòng)平臺(tái)之上運(yùn)行的原生應(yīng)用程序。此類(lèi)應(yīng)用傾向于將原生應(yīng)用與Web應(yīng)用的優(yōu)勢(shì)加以結(jié)合,在運(yùn)用標(biāo)準(zhǔn)Web開(kāi)發(fā)資源的同時(shí)允許應(yīng)用成果以原生方式運(yùn)行在各類(lèi)設(shè)備之上。
***適用范圍
企業(yè)與企業(yè)以及企業(yè)與員工類(lèi)應(yīng)用程序
企業(yè)內(nèi)部服務(wù)及資源應(yīng)用
希望在不同平臺(tái)之上部署原生應(yīng)用的企業(yè)用戶(hù)
優(yōu)勢(shì)
- 利用Web標(biāo)準(zhǔn)進(jìn)行構(gòu)建;要求利用部分特定代碼通過(guò)API訪(fǎng)問(wèn)手機(jī)內(nèi)置功能
- 企業(yè)可以利用現(xiàn)有Web開(kāi)發(fā)人員構(gòu)建此類(lèi)應(yīng)用
- 能夠快速實(shí)現(xiàn)修改、更新與部署
- 能夠在不同平臺(tái)之上以原生應(yīng)用形式運(yùn)行
短板
- 界面與標(biāo)準(zhǔn)原生應(yīng)用程序相比可能存在較大區(qū)別
- 性能表現(xiàn),特別是在游戲及某些圖形及多媒體處理負(fù)載較高的場(chǎng)景下,遠(yuǎn)遜于原生應(yīng)用
- 通常能夠訪(fǎng)問(wèn)設(shè)備當(dāng)中的全部傳感器及硬件,但在支持新功能方面可能存在一定滯后
- 可能需要對(duì)原生應(yīng)用“shell”的不同代碼庫(kù)進(jìn)行維護(hù)
- 開(kāi)發(fā)人員需要利用其它軟件將Web應(yīng)用轉(zhuǎn)化為原生應(yīng)用
開(kāi)發(fā)工具
這類(lèi)應(yīng)用程序擁有更為廣泛的適用開(kāi)發(fā)工具,從將現(xiàn)有Web代碼轉(zhuǎn)化為原生應(yīng)用的工具到完整的開(kāi)發(fā)環(huán)境可謂無(wú)所不包。以下列出的僅僅是其中的一小部分。
Apache Cordova ,一套開(kāi)源平臺(tái),能夠?qū)⒗肏TML 5、CSS以及JavaScript構(gòu)建的移動(dòng)Web應(yīng)用轉(zhuǎn)化為原生移動(dòng)應(yīng)用
Adobe PhoneGap,Adobe推出的Apache Cordova的一套衍生方案
Alpha Anywhere,這套開(kāi)發(fā)環(huán)境允許用戶(hù)構(gòu)建Web應(yīng)用程序并將其作為原生應(yīng)用加以部署,其對(duì)編程經(jīng)驗(yàn)要求不高、但亦允許高水平程序員充分發(fā)揮自己的編程技能
Ionic Framework:這套框架專(zhuān)注于構(gòu)建用戶(hù)界面,其能夠與AngularJS以及Cordova相配合以實(shí)現(xiàn)Web應(yīng)用程序向原生應(yīng)用之轉(zhuǎn)化
OutSystems:允許用戶(hù)利用可視化工具構(gòu)建Web應(yīng)用與原生應(yīng)用
Kony:這套平臺(tái)提供一系列工具選項(xiàng),幫助用戶(hù)構(gòu)建面向不同平臺(tái)類(lèi)型的原生應(yīng)用程序
Xamarin:用于構(gòu)建原生應(yīng)用程序的跨平臺(tái)開(kāi)發(fā)平臺(tái)
Appcelerator:這套跨平臺(tái)開(kāi)發(fā)方案允許用戶(hù)利用JavaScript編寫(xiě)應(yīng)用,而后以此為基礎(chǔ)構(gòu)建原生應(yīng)用程序
原文標(biāo)題:Native vs. HTML5 vs. hypid mobile apps: The pros and cons

























