- 本文轉(zhuǎn)載自博客園 song-z
目前流行的跨平臺WebApp開發(fā)技術的特點
每個框架幾乎都包含以下特性:
- 使用 HTML5 + CSS + JavaScript 開發(fā)
- 跨平臺重用代碼
- 豐富的UI庫
- 提供訪問設備原生API的 JavaScript API 包裝器
- 解決原生開發(fā)中機型適配的難題
- 提供打包、部署的工具或服務
- 都需要學習自身封裝的 JavaScript API
篩選框架的要求
- 性能:運行速度快
- UI:提供接近原生的UI體驗
- 插件多朵耕,文檔豐富匿级,開發(fā)效率高描滔,容易擴展和維護
- 滿足業(yè)務需求
一姨夹、Cordova
Cordova 和 PhoneGap 的區(qū)別吴趴?
PhoneGap 是 Apache Cordova 的一個分發(fā)版削饵,就像 Ubuntu 是 基于 Linux 的一個發(fā)行版署浩,其代碼庫也基于 Cordova,只是 PhoneGap 關聯(lián)了 Adobe 的一些額外的商業(yè)工具或服務掸哑,例如 PhoneGap Build 和 Adobe Shadow左胞,來幫助開發(fā)者簡化開發(fā)。
此外举户,兩者提供的CLI工具烤宙、項目結構有差異,如:
Cordova 把 config.html 放在項目目錄下俭嘁,而 PhoneGap 把它放在www 目錄下躺枕。
優(yōu)點:
- 開源免費,社區(qū)生態(tài)成熟,插件豐富
- 支持離線場景應用
- 開發(fā)工具選擇空間大
缺點:
- 只提供基礎訪問設備的接口拐云,需要自己搭配其他UI框架和JavaScript框架來搭配
UI框架
- Framework7
- MSUI| Github
- Famous
為任意屏幕創(chuàng)建流暢罢猪、復雜的UI。
免費和開源的JavaScript渲染引擎叉瘩。著名引擎的獨特之處在于其JavaScript渲染引擎和3D物理引擎膳帕。
官網(wǎng)|Github|Hello World
使用 Famo.us 創(chuàng)建高性能移動 UI
參考資料
Cordova中文文檔
創(chuàng)建第一個App(英文)
利用 Cordova+Famous 創(chuàng)建高性能跨平臺APP
使用 Cordova 和 Vue.js 創(chuàng)建移動應用
二、Ionic
官網(wǎng)地址:http://www.ionic.wang/(有案例)
Ionic = Cordova + AngularJS + 一套樣式庫薇缅。
技術要求
- HTML + CSS + AngularJS
優(yōu)點:
- 基于 Cordova
- 漂亮的界面危彩,追求性能,專注原生泳桦,免費開源
- Angular JS MVVM 開發(fā)理念汤徽,數(shù)據(jù)雙向綁定
- 繼承自 Cordova,可以使用 Cordova 的插件
缺點:
- Angular JS 學習路線陡峭
- Ionic 框架相比于原生的 Cordova 有所差異灸撰,Cordova 某些官方插件可能不適用于Ionic
三谒府、AppCan
通過AppCan IDE集成開發(fā)系統(tǒng)、云端打包器等浮毯,快速開發(fā)出Android完疫、iOS、WP平臺上的移動應用债蓝。
有兩種方式創(chuàng)建項目:IDE 和云端壳鹤,并且IDE可以同步到云端。
免費用戶有100M空間惦蚊、50個應用的限制。
優(yōu)點
- 提供一體化解決方案讯嫂,方便環(huán)境搭建蹦锋、開發(fā)、調(diào)試欧芽、發(fā)布
- 框架自帶UI包莉掂,包含常用控件樣式
- 框架對UI、動畫渲染進行過優(yōu)化千扔,反應速度快
- 支持本地打包憎妙、云端打包
- 基于密鑰的代碼加密
缺點
- 不開源,無法修改曲楚、優(yōu)化底層代碼
分大眾版和企業(yè)版厘唾,大眾版免費,但功能有缺失龙誊,詳細見附錄
暫不支持自行開發(fā)控件/抚垃,無法調(diào)取android原生功能
框架自帶功能過多,導致應用安裝包偏大。
文檔偏少
部分系統(tǒng)無法使用IDE進行調(diào)試
只能在服務器端發(fā)布鹤树,無法在本地發(fā)布
IOS發(fā)布铣焊,需要將證書上傳至服務器
使用案例:
我愛我家App 等
附錄:
企業(yè)版和大眾版主要有以下幾點區(qū)別:
開發(fā)環(huán)境:
企業(yè)版走獨立的開發(fā)環(huán)境與打包環(huán)境,企業(yè)版配備macmini打包服務器罕伯,可以實現(xiàn)本地環(huán)境下創(chuàng)建項目曲伊,調(diào)試,打包追他;
大眾版不管是創(chuàng)建項目還是打包都需要依托于官方的服務器坟募,需要在聯(lián)網(wǎng)的情況下進行,打包需要將源碼上傳到官方服務器進行打包湿酸;版本控制:企業(yè)版獨立控制引擎插件的版本婿屹;
大眾版官方統(tǒng)一維護,官方換哪個版本開發(fā)者就需要使用哪個版本推溃,沒有選擇昂利;協(xié)同開發(fā):企業(yè)版可通過macmini后臺分配開發(fā)者或者應用管理員帳號,可實現(xiàn)協(xié)同開發(fā)铁坎。
大眾版不能滿足協(xié)同開發(fā)企業(yè)版有推送API接口
大眾版沒有售后服務:企業(yè)版有獨立的售后團隊
大眾版的入口是論壇
四蜂奸、Dcloud
特點:
云編譯必須聯(lián)網(wǎng)獲取AppId
優(yōu)點:
- 國內(nèi)廠商,中文文檔
- 對HTML5的性能硬萍、工具扩所、能力都做了深入擴展,提供 IDE 朴乖、云服務等幫助節(jié)省時間
- MUI 更貼近國內(nèi)App使用習慣祖屏,提供模塊的詳細例子,如登錄买羞,個人中心
缺點:
- 部分操作需要具備原生開發(fā)經(jīng)驗袁勺,如離線打包App
- 新產(chǎn)品仍然有bug,還需改進
學習路線:
五畜普、APICloud
優(yōu)點:
不懂原生開發(fā)期丰,不懂后臺語言就可完成APP
缺點:
更新速度快,版本不夠穩(wěn)定
面向不懂App開發(fā)人群吃挑,不適合程序員和科技公司钝荡,過度依賴會降低技術水平
涉嫌抄襲DCloud大量代碼
六、React Native
能夠在Javascript和React的基礎上獲得完全一致的開發(fā)體驗舶衬,構建世界一流的原生APP埠通。
僅需學習一次,編寫任何平臺逛犹。(Learn once, write anywhere)
缺點:
初次學習成本高
必須在不同平臺下寫兩套代碼植阴,依賴暴露的接口
總結
Cordova
生態(tài)成熟蟹瘾,有更多可搭配工具使用,開源代碼可自由定制掠手;
前端框架: famous 或 Framework7
DCloud
國產(chǎn)中的開源憾朴,免費,性能不錯
提供云服務幫助打包和部署喷鸽、測試众雷,降低一部分門檻,減少時間做祝;
前端框架:MUI
APICloud
生態(tài)不好砾省,名聲不好,面向群體不適合混槐;
AppCan
閉源编兄,商業(yè)化產(chǎn)品,免費版限制太多声登;
Ionic
AngularJS 學習曲線陡峭狠鸳,需要時間;
React Native
學習成本高