整理目前流行的跨平臺(tái)WebApp開(kāi)發(fā)技術(shù)的特點(diǎn),僅供參考。
每個(gè)框架幾乎都包含以下特性:
- 使用 HTML5 + CSS + JavaScript 開(kāi)發(fā)
- 跨平臺(tái)重用代碼
- 豐富的UI庫(kù)
- 提供訪問(wèn)設(shè)備原生API的 JavaScript API 包裝器
- 解決原生開(kāi)發(fā)中機(jī)型適配的難題
- 提供打包、部署的工具或服務(wù)
- 都需要學(xué)習(xí)自身封裝的 JavaScript API
篩選框架的要求:
- 性能:運(yùn)行速度快
- UI:提供接近原生的UI體驗(yàn)
- 插件多,文檔豐富,開(kāi)發(fā)效率高,容易擴(kuò)展和維護(hù)
- 滿足業(yè)務(wù)需求
Cordova
Cordova 和 PhoneGap 的區(qū)別?
PhoneGap 是 Apache Cordova 的一個(gè)分發(fā)版,就像 Ubuntu 是 基于 Linux 的一個(gè)發(fā)行版,其代碼庫(kù)也基于 Cordova,只是 PhoneGap 關(guān)聯(lián)了 Adobe 的一些額外的商業(yè)工具或服務(wù),例如 PhoneGap Build 和 Adobe Shadow,來(lái)幫助開(kāi)發(fā)者簡(jiǎn)化開(kāi)發(fā)。
此外,兩者提供的CLI工具、項(xiàng)目結(jié)構(gòu)有差異,如:
Cordova 把 config.html 放在項(xiàng)目目錄下,而 PhoneGap 把它放在www 目錄下。
優(yōu)點(diǎn):
- 開(kāi)源免費(fèi),社區(qū)生態(tài)成熟,插件豐富
- 支持離線場(chǎng)景應(yīng)用
- 開(kāi)發(fā)工具選擇空間大
缺點(diǎn):
- 只提供基礎(chǔ)訪問(wèn)設(shè)備的接口,需要自己搭配其他UI框架和JavaScript框架來(lái)搭配
UI框架
參考資料
Cordova中文文檔
創(chuàng)建第一個(gè)App(英文)
利用 Cordova+Famous 創(chuàng)建高性能跨平臺(tái)APP
使用 Cordova 和 Vue.js 創(chuàng)建移動(dòng)應(yīng)用
Ionic
官網(wǎng)地址:http://www./ (有案例)
Ionic = Cordova + AngularJS + 一套樣式庫(kù)。
技術(shù)要求
優(yōu)點(diǎn):
- 基于 Cordova
- 漂亮的界面,追求性能,專注原生,免費(fèi)開(kāi)源
- Angular JS MVVM 開(kāi)發(fā)理念,數(shù)據(jù)雙向綁定
- 繼承自 Cordova,可以使用 Cordova 的插件
缺點(diǎn):
- Angular JS 學(xué)習(xí)路線陡峭
- Ionic 框架相比于原生的 Cordova 有所差異,Cordova 某些官方插件可能不適用于Ionic
AppCan
通過(guò)AppCan IDE集成開(kāi)發(fā)系統(tǒng)、云端打包器等,快速開(kāi)發(fā)出Android、iOS、WP平臺(tái)上的移動(dòng)應(yīng)用。
有兩種方式創(chuàng)建項(xiàng)目:IDE 和云端,并且IDE可以同步到云端。
免費(fèi)用戶有100M空間、50個(gè)應(yīng)用的限制。
優(yōu)點(diǎn)
- 提供一體化解決方案,方便環(huán)境搭建、開(kāi)發(fā)、調(diào)試、發(fā)布
- 框架自帶UI包,包含常用控件樣式
- 框架對(duì)UI、動(dòng)畫渲染進(jìn)行過(guò)優(yōu)化,反應(yīng)速度快
- 支持本地打包、云端打包
- 基于密鑰的代碼加密
缺點(diǎn)
- 不開(kāi)源,無(wú)法修改、優(yōu)化底層代碼
- 分大眾版和企業(yè)版,大眾版免費(fèi),但功能有缺失,詳細(xì)見(jiàn)附錄
- 暫不支持自行開(kāi)發(fā)控件/,無(wú)法調(diào)取android原生功能
- 框架自帶功能過(guò)多,導(dǎo)致應(yīng)用安裝包偏大。
- 文檔偏少
- 部分系統(tǒng)無(wú)法使用IDE進(jìn)行調(diào)試
- 只能在服務(wù)器端發(fā)布,無(wú)法在本地發(fā)布
- IOS發(fā)布,需要將證書上傳至服務(wù)器
參考:
Phonegap VS AppCan
使用案例:
我愛(ài)我家App 等
附錄:
企業(yè)版和大眾版主要有以下幾點(diǎn)區(qū)別:
- 開(kāi)發(fā)環(huán)境:
企業(yè)版走獨(dú)立的開(kāi)發(fā)環(huán)境與打包環(huán)境,企業(yè)版配備macmini打包服務(wù)器,可以實(shí)現(xiàn)本地環(huán)境下創(chuàng)建項(xiàng)目,調(diào)試,打包;
大眾版不管是創(chuàng)建項(xiàng)目還是打包都需要依托于官方的服務(wù)器,需要在聯(lián)網(wǎng)的情況下進(jìn)行,打包需要將源碼上傳到官方服務(wù)器進(jìn)行打包;
- 版本控制:企業(yè)版獨(dú)立控制引擎插件的版本;
大眾版官方統(tǒng)一維護(hù),官方換哪個(gè)版本開(kāi)發(fā)者就需要使用哪個(gè)版本,沒(méi)有選擇;
- 協(xié)同開(kāi)發(fā):企業(yè)版可通過(guò)macmini后臺(tái)分配開(kāi)發(fā)者或者應(yīng)用管理員賬號(hào),可實(shí)現(xiàn)協(xié)同開(kāi)發(fā)。
大眾版不能滿足協(xié)同開(kāi)發(fā)
- 企業(yè)版有推送API接口
大眾版沒(méi)有
- 售后服務(wù):企業(yè)版有獨(dú)立的售后團(tuán)隊(duì)
大眾版的入口是論壇
Dcloud
特點(diǎn):
云編譯必須聯(lián)網(wǎng)獲取AppId
優(yōu)點(diǎn):
- 國(guó)內(nèi)廠商,中文文檔
- 對(duì)HTML5的性能、工具、能力都做了深入擴(kuò)展,提供 IDE 、云服務(wù)等幫助節(jié)省時(shí)間
- MUI 更貼近國(guó)內(nèi)App使用習(xí)慣,提供模塊的詳細(xì)例子,如登錄,個(gè)人中心
缺點(diǎn):
- 部分操作需要具備原生開(kāi)發(fā)經(jīng)驗(yàn),如離線打包App
- 新產(chǎn)品仍然有bug,還需改進(jìn)
學(xué)習(xí)路線:
APICloud
優(yōu)點(diǎn):
- 不懂原生開(kāi)發(fā),不懂后臺(tái)語(yǔ)言就可完成APP
缺點(diǎn):
- 更新速度快,版本不夠穩(wěn)定
- 面向不懂App開(kāi)發(fā)人群,不適合程序員和科技公司,過(guò)度依賴會(huì)降低技術(shù)水平
- 涉嫌抄襲DCloud大量代碼
React Native
能夠在Javascript和React的基礎(chǔ)上獲得完全一致的開(kāi)發(fā)體驗(yàn),構(gòu)建世界一流的原生APP。
僅需學(xué)習(xí)一次,編寫任何平臺(tái)。(Learn once, write anywhere)
缺點(diǎn):
- 初次學(xué)習(xí)成本高
- 必須在不同平臺(tái)下寫兩套代碼,依賴暴露的接口
總結(jié)
經(jīng)過(guò)一番對(duì)比,感覺(jué) Cordova 和 DCloud 更適合本次項(xiàng)目。
原因:
Cordova
- 生態(tài)成熟,有更多可搭配工具使用,開(kāi)源代碼可自由定制;
- 前端框架: famous 或 Framework7
DCloud
- 國(guó)產(chǎn)中的開(kāi)源,免費(fèi),性能不錯(cuò)
- 提供云服務(wù)幫助打包和部署、測(cè)試,降低一部分門檻,減少時(shí)間;
- 前端框架:MUI
其他框架不適合的原因:
APICloud
AppCan
- 閉源,商業(yè)化產(chǎn)品,免費(fèi)版限制太多;
Ionic
- AngularJS 學(xué)習(xí)曲線陡峭,需要時(shí)間;
React Native
|