傳統的原生App開發模式,有iOS和安卓兩大系統,須要各自語言開發各自App。css
優勢:性能和體驗都是最好。
缺點:開發和發佈成本高, 維持多個版本的更新升級比較麻煩,用戶的安裝門檻也高html
移動端的網站, h5
開發和發佈成本最低, 性能和體驗較差,受到瀏覽器處理能力的限制api
混合模式移動應用,介於Web App、Native App這兩之間App開發技術, 兼具「Native App良好交互體驗的優點」和「Web App跨平臺開發的優點」瀏覽器
原理: 由Native經過JSBridge
等方法提供統一的API,用html,css實現界面,JS寫邏輯調用API,最終頁面在Webview
中顯示,這種模式下,Android、iOS的API通常有一致性,HybridApp因此有跨平臺
效果app
開發者能夠像開發WebApp同樣開發app的視覺UI,當須要使用原生功能(如攝像頭,陀螺儀等功能)時,只須要調用官方的API就能夠實現Native的效果。至於JS和Native的通訊,經常使用的有URL監聽
和Hybrid廠商使用的JSBridge通訊
,二者原理相近。工具
Hybird App 的常見跨平臺開發工具備PhoneGap,Ionic, 國內有AppCan佈局
缺點:Hybird嚴重受限於WebView的解析渲染效率,須要原生配合。性能
JSBridge調用方式開發工具
Facebook
發現Hybrid存在不少缺陷和不足,而後本身開發了一套RN, 使用JSX寫原生界面,js經過JSBridge
調用原生API渲染UI交互通訊
。
支持flexBox佈局, 採用DOM 結構;flex
優勢:效率體驗接近Native App,發佈和開發成本低於Native App。
缺點:新東西,更新迭代快,api後期同早期變化很大,須要踩坑。。
阿里開發團隊在RN的成功案例上,設計的一套開發模式,2016年4月正式開源,並在v2.0版本官方支持Vue.js優勢:單頁開發模式效率極高,熱更新發包體積小,而且跨平臺性強。缺點:同RN, 且社區沒有RN活躍,已捐獻給 Apache 基金會孵化管理。。。奔潰。。。