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