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