移動端跨平臺開發方案比較

Flutter(Google)

Flutter是google最新的移動UI框架,Beta1版本於2018年2月27日在2018世界移動大會發布,Beta2版本2018年3月6日發佈,現在更新到了1.7版本。開發者可以使用Flutter在ios和Android平臺上開發原生應用,閒魚、NOW直播、京東、美團這些應用也有使用Flutter。

優點:

高生產效率。一套代碼可以開發出Android和iOS應用;
Dart語言優越性,使得同樣的 功能只需要很少的代碼;
迭代更加方便,hot reload(熱重載)功能;
創建優雅的、高度可定製的用戶界面;
Flutter內置了對Material Design和Cupertino(iOS-favor)的UI組件庫;
提供了可定製 的UI組件,不再受制於OEM控件的限制;
藉助可移植的GPU加速的渲染引擎以及高性能本地ARM代碼運行時以達到跨平臺的高質量用戶體驗;

缺點:

Flutter在github上面未解決的issuse可不少;
Flutter採用Dart語言開發,屬於小衆語言,需要一切都要重新學習;
Flutter現在還處在Beta階段,第三方庫很少;

React Native(Facebook)

RN是Facebook於2015年4月開源的跨平臺移動應用開發框架,目前支持ios和Android兩大平臺。RN使用Javascript語言,類似於HTML的JSX,以及CSS來開發移動應用,因此熟悉Web前端開發的技術人員只需很少的學習就可以進入移動應用開發領域。國內的很多app比如QQ空間 ,QQ音樂,墨刀,京東,手機百度等,具體參考:https://facebook.github.io/react-native/showcase.html

RN的優勢:

  1. 兩端並行開發(共享智慧)
  2. 熱更新(升級)
  3. Open standard(React redux cycle…)。
  4. 社區力量。

優點:

能夠在Javascript和React的基礎上獲得完全一致的開發體驗,構建世界一流的原生APP;
僅需學習一次,編寫任何平臺。(Learn once, write anywhere);
雖然不能做到一次編碼到處運行,但是基本上即使是兩套代碼, 也是相同的jsx語法, 使用js進行開發。用戶體驗高於html, 開發效率較高;
Flexbox佈局據說比native的自適應佈局更加簡單高效;
可實現在線更新,允許運行於JavaSriptCore的動態加載代碼,更貼近於原生開發;
使 App 可以達到每秒 60 幀(足夠流暢),並且能有類似原生 App 的外觀和手感;
如果你只想給現有的原生應用中添加一兩個視圖或是業務流程,React Native 也同樣不在話下;

缺點:

對開發人員要求較高,不是懂點web技術就行的,當官方封裝的控件、API無法滿足需求時就必然需要懂一些native的東西去擴展,擴展性仍然遠遠不如web,也遠遠不如直接寫Native Code;
官方說的很隱晦:learn once,write anywhere。
人家可run anwhere。就是針對不同的平臺需要些多套代碼;

WEEX(Alibaba)

Alibaba在2016年4月21日Qcon大會上宣佈跨平臺移動開發工具Weex。Weex框架能夠完美兼顧性能與動態性,讓移動開發者通過簡捷的前端語法寫出Native級別的性能體驗,並支持iOS、安卓、YunOS及Web等多端部署。
Weex基於開源的Vue.JS, 相比於RN來說入門簡單,容易上手。目前阿里系的很多產品 比如淘寶,支付寶和一些小公司app都在用WEEX。

雖然Weex和React Native都支持跨平臺開發,但實際還是有一定的區別:Weex的目標是實現代碼共用,一次開發多平臺運行,能同時支持IOS、Android和Web,降低了開發難度,節約開發成本;
React Native則希望替換整個APP,所以更加註重平臺的獨立性,其代碼需要針對IOS和Android平臺編寫,代碼無法實現完全公用。

Cordova(Apache)

Cordova 是Apache旗下的一個開源的移動開發框架。它允許你使用WEB開發技術(HTML5、CSS3、JavaScript)進行跨平臺開發。應用在每個平臺的封裝器中執行,並且依賴規範的API對設備進行高效的訪問,比如傳感器、數據、網絡狀態等等。

Cordova通過對HTML、CSS、JS封裝爲原生APP。Cordova將不同設備的功能,按標準進行了統一封裝,開發人員不需要了解設備的原生實現細節,並且提供了一組統一的JavaScript類庫,以及爲這些類庫所使用的設備相關的原生後臺代碼。因此實現了“write once, run anywhere”(一次開發,隨處運行)。

Cordova前身是PhoneGap。2011年Adobe公司將其收購對其開源,並捐獻給Apache,重新命名爲Cordova。

優點:

開源免費,社區生態成熟,插件豐富;
支持離線場景應用;
開發工具選擇空間大;
iOS和Android基本上可以共用代碼,純web思維,開發速度快, 簡單方便,一次編碼,到處運行。如果熟悉web開發,文檔很全, 系統級支持封裝較好,所有UI組件都是有html模擬,可以統一使用;
可實現在線更新,允許動態加載web js;
文檔多,開發者多,遇到問題容易解決,技術成熟;

缺點:

只提供基礎訪問設備的接口,需要自己搭配其他UI框架和JavaScript框架來搭配;
佔用內存高一些,不適合做遊戲類型app, web技術午無法解決一切問題,對於比較耗能的地方無法利用native的思維實現優勢互補,如高體驗的交互,動畫等;

小程序(Tencent)

小程序就是運行於微信上的功能性的軟件或應用。2016年9月21日,微信小程序正式開啓內測。2017年1月9日0點,萬衆矚目的微信第一批小程序正式低調上線。從技術上來說,微信小程序應用使用HTML5技術。

小程序入手比較簡單,目前微信小程序開發在國內也是非常的火爆,許多公司都有這方面的需求。
在這裏插入圖片描述

跨平臺方案優缺點

跨平臺方案都有的優點:一個工程師就能開發兩個平臺的APP,能提高生產效率。
跨平臺方案都有的缺點: 在JNI, 視頻圖片處理等一些領域, 開發會比較有難度, 這塊業務還是用原生開發比較好. 也可以選擇混合開發, 即APP中一般性業務用跨平臺或者h5, JNI, 視頻圖片處理等部分用原生。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章