綜合自己近幾個項目的開發,結合在線資料的查詢,對目前流行的跨平臺應用開發技術進行一個整理。
框架幾乎都包含以下特性:
使用 HTML5 + CSS + JavaScript 開發
跨平臺重用代碼
豐富的UI庫
提供訪問設備原生API的 JavaScript API 包裝器
解決原生開發中機型適配的難題
提供打包、部署的工具或服務
都需要學習自身封裝的 JavaScript API
目前較流行的框架有:Cordova,Ionic,React Native,AppCan,Dcloud,APICloud等,前三個框架我個人都有所接觸,有相關的項目經驗,接下來我結合個人經驗和查詢到的資料對各個框架的特點進行一個初步介紹。
1,Cordova
參考:Cordova中文文檔
PhoneGap 是 Apache Cordova 的一個分發版,
優點:
- 開源免費,社區生態成熟,插件豐富
- 支持離線場景應用
- 開發工具選擇空間大
缺點:
- 只提供基礎訪問設備的接口,需要自己搭配其他UI框架和JavaScript框架來搭配
2,Ionic
https://blog.csdn.net/ZhangKui0418/article/details/79363628
Ionic = Cordova + AngularJS + 一套樣式庫。
技術要求
- HTML + CSS + AngularJS
優點:
- 基於 Cordova
- 漂亮的界面,追求性能,專注原生,免費開源
- Angular JS MVVM 開發理念,數據雙向綁定
- 繼承自 Cordova,可以使用 Cordova 的插件
缺點:
- Angular JS 學習路線陡峭
- Ionic 框架相比於原生的 Cordova 有所差異,Cordova 某些官方插件可能不適用於Ionic
3,React Native
https://blog.csdn.net/ZhangKui0418/article/details/80887672
Learn once, write anywhere,做到了既具備原生應用的用戶體驗,又獲得了Web應用的開發體驗(編譯迅速,發佈迅速)。
缺點:
- 初次學習成本高
- 必須在不同平臺下寫兩套代碼,依賴暴露的接口
- 網上資料太少,對於RN使用方法,出現問題的處理方法都相對較
- 對於第三方庫的支持,我們無法直接通過RN去實現對第三方庫(百度地圖,支付寶SDK。。)的支持,還是需要原生的代碼去實現。
4,AppCan
參考:AppCan文檔
通過AppCan IDE集成開發系統、雲端打包器等,快速開發出Android、iOS、WP平臺上的移動應用。
有兩種方式創建項目:IDE 和雲端,並且IDE可以同步到雲端。
免費用戶有100M空間、50個應用的限制。
優點
- 提供一體化解決方案,方便環境搭建、開發、調試、發佈
- 框架自帶UI包,包含常用控件樣式
- 框架對UI、動畫渲染進行過優化,反應速度快
- 支持本地打包、雲端打包
- 基於密鑰的代碼加密
缺點
- 不開源,無法修改、優化底層代碼
- 分大衆版和企業版,大衆版免費,但功能有缺失,詳細見附錄
- 暫不支持自行開發控件/,無法調取android原生功能
- 框架自帶功能過多,導致應用安裝包偏大。
- 文檔偏少
- 部分系統無法使用IDE進行調試
- 只能在服務器端發佈,無法在本地發佈
- IOS發佈,需要將證書上傳至服務器
5,Dcloud
參考:DCLOUD文檔
特點:
雲編譯必須聯網獲取AppId
優點:
- 國內廠商,中文文檔
- 對HTML5的性能、工具、能力都做了深入擴展,提供 IDE 、雲服務等幫助節省時間
- MUI 更貼近國內App使用習慣,提供模塊的詳細例子,如登錄,個人中心
缺點:
- 部分操作需要具備原生開發經驗,如離線打包App
- 新產品仍然有bug,還需改進
學習路線:
6,APICloud
優點:
- 不懂原生開發,不懂後臺語言就可完成APP
缺點:
- 更新速度快,版本不夠穩定
- 面向不懂App開發人羣,不適合程序員和科技公司,過度依賴會降低技術水平
- 涉嫌抄襲DCloud大量代碼
7,總結
每個框架都有自己的優缺點,就我使用的框架來看,cordova,ionic插件豐富,UI開發較容易;react native依賴原生組件,體驗接近原生應用,但是學習曲線較陡峭,需要自己封裝大量組件;另外幾個框架還未涉足,待繼續學習。
接下來本博客會對使用前三個框架開發經歷進行一些總結,將踩過的一些坑坑坑,做一些總結,一起交流學習,感謝關注。。。
8,即將入坑Flutter
https://blog.csdn.net/ZhangKui0418/article/details/90298210