前所知的 APP 開發模式有三種:html
下面的圖摘自簡書,是對三種不一樣形態的 APP 的對比:前端
Hybrid APP是目前普遍流行的一種APP開發模式,Android、iOS、JS三端內容初步都已經完成,有完善的設計思路、教程以及API文檔。html5
Hybrid App,這種既有跨平臺開發週期短
、成本低的基因
,又能發揮Native App體驗和性能
的優點,HybridApp混合式移動應用開發逐漸成爲企業移動開發的首選。
Hybrid App一般是基於第三方跨平臺移動應用引擎框架
進行開發:web
在國內開發者中比較知名的有PhoneGap、Titanium和AppCan這些引擎框架
通常使用HTML5和Javascript
做爲編程語言,調用引擎封裝的底層功能如照相機、傳感器、通信錄、二維碼
等。HTML5和Javascript只是做爲一種解析語言,真正調用的都是NativeApp同樣封裝的底層功能,這是和Web App的最大區別和不一樣
。由於使用了瀏覽器技術
,因此Hybrid App一般具備跨平臺的特性
,而且開發成本和WebApp接近
,開發效率也遠高於Native App
。編程
說實在的,從表面上看的話,很難區分一個App究竟是Native App仍是Hybrid App,但實際上咱們更多的是把Hybrid App當作是Webapp的一部分
,由於他是一部分Native(比較少),絕大部分的web頁面(html5頁面)。小程序
Hybrid App和Native App同樣都是須要用戶在各類App分發渠道上下載並安裝到手機上才能用的
。Hybrid App的體驗固然是沒話說,比較棒的,有這Native App的所有優勢。html5很好的解決了跨平臺性的問題,也解決了開發成本太高的問題。api
國內外Hybrid App的開發平臺衆多,目前有三種開發模式:瀏覽器
成立時間:2014年安全
融資狀況:1200萬人民幣服務器
產品:hbuilder、5+runtime、mui(免費)
集成的原生sdk:經過5+sdk自行集成
成立時間:2008年8月
融資狀況:已被adobe收購
產品:phonegap(cordova)
集成的原生sdk:自行集成
產品功能:
PhoneGap是一款國外的開源移動開發平臺。目前已經將核心代碼貢獻給Apache cordova,最新版本是2.6.0,它是基於HTML,CSS和JavaScript的,可使用一些開源的框架好比jQuery Mobile,Dojo Mobile,Sencha Touch等等來提升用戶體驗,也提供了比較豐富的原生插件調用。
缺點:
須要針對相應的平臺環境配置,進行編譯,打包測試,發佈等等。因爲使用Hybrid開發的用戶羣,大部分是web開發者,對原生開發基本不瞭解,這無疑給每個開發者增長了沉重的負擔,須要對各個平臺的開發都要須要瞭解,對硬件等等都要配置,加大開發成本。
使用效果啓動慢,頁面切換響應慢,數據請求慢。調試難度大,內存消耗大。不能徹底跨平臺,不一樣平臺代碼須要微調。
文檔雖比較詳細可是基本是英文,對於國內大部分用戶英文水平較差的是比較大的挑戰。
由於是國外的框架,技術支持不夠到位,出現問題,沒法排解,成爲技術攻關的難點。
側重點:側重於對硬件的訪問控制
成立時間:2010年初
融資狀況:1億元人民幣
產品:公衆版(免費)與企業版(收費)
缺點:
雖然有中文的開發文檔,但描述比較簡單,但願他們豐富他們的API文檔。
免費版本不支持自定義插件(聽說企業版能夠自定義插件)。
暫時只支持iOS,Android兩大平臺,不知道何時推出Windows Phone 8?
許多功能須要企業版才能實現,不過是收費的。
AppCan免費版因須要把源代碼上傳到廠商的服務器上打包,對於企業開發來講源代碼泄露安全性上有必定風險。企業版雖然能夠解決,但企業版穩定尚待觀察。
AppCan採用封裝的組件,依賴性比較高。不是開源代碼。
AppCan 不能很好的解決原生代碼的功能。
大概瀏覽了一下appcan的文檔,api設計只能用莫名其妙來形容,各類縮寫,各類看不懂。
比較表格 | Phonegap | AppCan |
---|---|---|
框架功能 | 簡單 | 豐富 |
支持平臺 | 大部分平臺 | 僅4種平臺 |
開發環境 | 不一樣平臺須要不一樣開發環境 | 只需一個IDE包 |
調試 | 可直接調試 | 本地發佈的IOS包,必須部署在越獄的機器上 |
發佈 | 在本地能夠直接發佈 | 必須將代碼上傳至服務器,才能發佈 |
IOS 簽名管理 | 本地管理 | 須要上傳至服務器 |
代碼泄露風險 | 低:僅在本地、svn保存代碼 | 高:需將代碼上傳至appcan服務器 |
Facebook推出的React Native方案,這是Facebook在放棄h5後自行推出一個'反H5方案',一句話總結就是:裏面能夠用JS來完整的寫一個原生應用。
微信推出的小程序,這也是一個微信主導的'反H5方案',一句話總結就是:裏面能夠同JS+微信自制的UI方案來寫一個相似於原生的應用,只不過這個應用不是發佈到App Store中,而是發佈到微信中。