整理目前流行的跨平臺WebApp開發(fā)技術(shù)的特點,僅供參考。
每個框架幾乎都包含以下特性:
-
使用 HTML5 + CSS + JavaScript 開發(fā)
-
跨平臺重用代碼
-
豐富的UI庫
-
提供訪問設(shè)備原生API的 JavaScript API 包裝器
-
解決原生開發(fā)中機型適配的難題
-
提供打包、部署的工具或服務(wù)
-
都需要學(xué)習(xí)自身封裝的 JavaScript API
篩選框架的要求:
-
性能:運行速度快
-
UI:提供接近原生的UI體驗
-
插件多,文檔豐富,開發(fā)效率高,容易擴展和維護
-
滿足業(yè)務(wù)需求
Cordova
Cordova 和 PhoneGap 的區(qū)別?
PhoneGap 是 Apache Cordova 的一個分發(fā)版,就像 Ubuntu 是 基于 Linux 的一個發(fā)行版,其代碼庫也基于 Cordova,只是 PhoneGap 關(guān)聯(lián)了 Adobe 的一些額外的商業(yè)工具或服務(wù),例如 PhoneGap Build 和 Adobe Shadow,來幫助開發(fā)者簡化開發(fā)。
此外,兩者提供的CLI工具、項目結(jié)構(gòu)有差異,如:
Cordova 把 config.html 放在項目目錄下,而 PhoneGap 把它放在www 目錄下。
優(yōu)點:
-
開源免費,社區(qū)生態(tài)成熟,插件豐富
-
支持離線場景應(yīng)用
-
開發(fā)工具選擇空間大
缺點:
-
只提供基礎(chǔ)訪問設(shè)備的接口,需要自己搭配其他UI框架和JavaScript框架來搭配
UI框架
優(yōu)點:
-
基于 Cordova
-
漂亮的界面,追求性能,專注原生,免費開源
-
Angular JS MVVM 開發(fā)理念,數(shù)據(jù)雙向綁定
-
繼承自 Cordova,可以使用 Cordova 的插件
缺點:
-
Angular JS 學(xué)習(xí)路線陡峭
-
Ionic 框架相比于原生的 Cordova 有所差異,Cordova 某些官方插件可能不適用于Ionic
AppCan
通過AppCan IDE集成開發(fā)系統(tǒng)、云端打包器等,快速開發(fā)出Android、iOS、WP平臺上的移動應(yīng)用。
有兩種方式創(chuàng)建項目:IDE 和云端,并且IDE可以同步到云端。
免費用戶有100M空間、50個應(yīng)用的限制。
優(yōu)點
-
提供一體化解決方案,方便環(huán)境搭建、開發(fā)、調(diào)試、發(fā)布
-
框架自帶UI包,包含常用控件樣式
-
框架對UI、動畫渲染進行過優(yōu)化,反應(yīng)速度快
-
支持本地打包、云端打包
-
基于密鑰的代碼加密
缺點
-
不開源,無法修改、優(yōu)化底層代碼
-
分大眾版和企業(yè)版,大眾版免費,但功能有缺失,詳細見附錄
-
暫不支持自行開發(fā)控件/,無法調(diào)取android原生功能
-
框架自帶功能過多,導(dǎo)致應(yīng)用安裝包偏大。
-
文檔偏少
-
部分系統(tǒng)無法使用IDE進行調(diào)試
-
只能在服務(wù)器端發(fā)布,無法在本地發(fā)布
-
IOS發(fā)布,需要將證書上傳至服務(wù)器
企業(yè)版和大眾版主要有以下幾點區(qū)別:
-
開發(fā)環(huán)境:
企業(yè)版走獨立的開發(fā)環(huán)境與打包環(huán)境,企業(yè)版配備macmini打包服務(wù)器,可以實現(xiàn)本地環(huán)境下創(chuàng)建項目,調(diào)試,打包;
大眾版不管是創(chuàng)建項目還是打包都需要依托于官方的服務(wù)器,需要在聯(lián)網(wǎng)的情況下進行,打包需要將源碼上傳到官方服務(wù)器進行打包;
-
版本控制:企業(yè)版獨立控制引擎插件的版本;
大眾版官方統(tǒng)一維護,官方換哪個版本開發(fā)者就需要使用哪個版本,沒有選擇;
-
協(xié)同開發(fā):企業(yè)版可通過macmini后臺分配開發(fā)者或者應(yīng)用管理員帳號,可實現(xiàn)協(xié)同開發(fā)。
大眾版不能滿足協(xié)同開發(fā)
-
企業(yè)版有推送API接口
大眾版沒有
-
售后服務(wù):企業(yè)版有獨立的售后團隊
大眾版的入口是論壇
Dcloud


特點:
云編譯必須聯(lián)網(wǎng)獲取AppId
優(yōu)點:
-
國內(nèi)廠商,中文文檔
-
對HTML5的性能、工具、能力都做了深入擴展,提供 IDE 、云服務(wù)等幫助節(jié)省時間
-
MUI 更貼近國內(nèi)App使用習(xí)慣,提供模塊的詳細例子,如登錄,個人中心
缺點:
-
部分操作需要具備原生開發(fā)經(jīng)驗,如離線打包App
-
新產(chǎn)品仍然有bug,還需改進
學(xué)習(xí)路線:

APICloud
優(yōu)點:
缺點:
-
更新速度快,版本不夠穩(wěn)定
-
面向不懂App開發(fā)人群,不適合程序員和科技公司,過度依賴會降低技術(shù)水平
-
涉嫌抄襲DCloud大量代碼
React Native
能夠在Javascript和React的基礎(chǔ)上獲得完全一致的開發(fā)體驗,構(gòu)建世界一流的原生APP。
僅需學(xué)習(xí)一次,編寫任何平臺。(Learn once, write anywhere)
缺點:
-
初次學(xué)習(xí)成本高
-
必須在不同平臺下寫兩套代碼,依賴暴露的接口
總結(jié)
經(jīng)過一番對比,感覺 Cordova 和 DCloud 更適合本次項目。
原因:
Cordova
-
生態(tài)成熟,有更多可搭配工具使用,開源代碼可自由定制;
-
前端框架: famous 或 Framework7
DCloud
-
國產(chǎn)中的開源,免費,性能不錯
-
提供云服務(wù)幫助打包和部署、測試,降低一部分門檻,減少時間;
-
前端框架:MUI
其他框架不適合的原因:
APICloud
AppCan
-
閉源,商業(yè)化產(chǎn)品,免費版限制太多;
Ionic
-
AngularJS 學(xué)習(xí)曲線陡峭,需要時間;
React Native