Cordova、Flutter、Reactnative項(xiàng)目、原生項(xiàng)目對(duì)比

一、基本對(duì)比

特點(diǎn) 原生 Cordova RN Flutter
發(fā)布時(shí)間 2014 2015 2017
維護(hù)者 Adobe(奧多比) FaceBook Google
語言 js js dart
代碼產(chǎn)物 www文件夾(網(wǎng)頁相關(guān)資源) jsBundle 二進(jìn)制文件
支持平臺(tái) Android、IOS Android、IOS、(PC) Android、IOS、(Web/PC)
界面順滑度 絲般順滑 絲般順滑 絲般順滑 ,不過iOS風(fēng)格組件較少,寫出的頁面太像安卓
開發(fā)成本 高,不支持跨平臺(tái) 低,只要會(huì)前端就能開發(fā) 較低,有前端基礎(chǔ)學(xué)下React 一般,需學(xué)習(xí)dart語言
運(yùn)行速度 賊高 相比原生略慢 幾乎可以達(dá)到原生性能
使用代表 微信 海關(guān)門戶 京東 咸魚

二、優(yōu)缺點(diǎn)對(duì)比

1.原生

  • 優(yōu)點(diǎn)
1.運(yùn)行效率高
  • 缺點(diǎn)
1.不支持跨平臺(tái)開發(fā)效率低
2.支持熱更新應(yīng)用上架APPStore被拒風(fēng)險(xiǎn)

2.Cordova

  • 優(yōu)點(diǎn)
1.開發(fā)成本低,只要會(huì)前端開發(fā)就能開Cordova頁面

  • 缺點(diǎn)
1.開發(fā)出來的界面就是網(wǎng)頁,特別不流暢

3.RN

  • 優(yōu)點(diǎn)
1.開發(fā)成本低 Learn once, write anywhere
2.開發(fā)出來的界面更接近原生
3.第三方插件豐富
  • 缺點(diǎn)
1.對(duì)原生安卓支持不是很好。常常要寫支持安卓平臺(tái)的代碼
2. 編輯器不是很好用,調(diào)試需要網(wǎng)頁調(diào)試,讓我一個(gè)原生開發(fā)者無法接受

4.Flutter

  • 優(yōu)點(diǎn)
1.寫出來的頁面運(yùn)行效率幾乎和原生無差別
2.谷歌親兒子,Android studio編輯器非常好用
3.對(duì)安卓原生支持非常好
  • 缺點(diǎn)
1.iOS風(fēng)格組件太少了,界面寫出來大多安卓風(fēng)格,不太習(xí)慣(也可能是iOS開發(fā)的偏見)
2.第三方插件非常豐富。

三、實(shí)現(xiàn)原理

  1. RN
  • React Native 是一套 UI 框架,默認(rèn)情況下 React Native 會(huì)在 Activity 下加載 JS 文件,然后運(yùn)行在 JavaScriptCore 中解析 Bundle 文件布局,最終堆疊出一系列的原生控件進(jìn)行渲染。
  • <View> 標(biāo)簽對(duì)應(yīng) ViewGroup/UIView ,<ScrollView> 標(biāo)簽對(duì)應(yīng) ScrollView/UIScrollView<Image> 標(biāo)簽對(duì)應(yīng) ImageView/UIImageView

2.flutter

  • Flutter 中絕大部分的 Widget 都與平臺(tái)無關(guān), 開發(fā)者基于 Framework 開發(fā) App ,而 Framework 運(yùn)行在 Engine 之上,由 Engine 進(jìn)行適配和跨平臺(tái)支持。這個(gè)跨平臺(tái)的支持過程,其實(shí)就是將 Flutter UI 中的 Widget “數(shù)據(jù)化” ,然后通過 Engine 上的 Skia 直接繪制到屏幕上 。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容