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