移動端跨端方案調研

2020.8.31寫

目前衍菱,主流的跨端方案,主要分為兩種:一種是肩豁,將 JavaScriptCore 引擎當作虛擬機的方案脊串,代表框架是 React Native辫呻;另一種是,使用非 JavaScriptCore 虛擬機的方案洪规,代表框架是 Flutter印屁。

選擇跨端方案時,不能只依賴于某幾項指標斩例,比如編程語言、性能从橘、技術架構等念赶,來判斷是否適合自己團隊和產品,更多的還要考慮開發(fā)效率恰力、社區(qū)支持叉谜、構建發(fā)布、 DevOps踩萎、 CI 支持等工程化方面的指標停局。著眼于團隊現(xiàn)狀和所選方案生態(tài),還要考慮技術未來的發(fā)展走向香府。

跨平臺方案最重要的點還是性能董栽,性能更佳的flutter當然是首選,對于原本是native開發(fā)的人來說企孩,rn與flutter的開發(fā)成本是相差不大的锭碳,從長遠角度來看,這批人最可能選擇flutter勿璃。對于原本是web開發(fā)的人來說擒抛,rn是首選,因為毫無語言切換上的開發(fā)成本补疑。

1.React Native

github Star:89.8k

優(yōu)勢:

React Native 使用 JavaScript 語言來開發(fā)歧沪,F(xiàn)lutter 使用的是 Dart 語言。JavaScript 的歷史和流行程度都遠超 Dart 莲组,生態(tài)也更加完善诊胞,開發(fā)者也遠多于 Dart 程序員。所以胁编,從編程語言的角度來看厢钧,雖然 Dart 語言入門簡單,但從長遠考慮嬉橙,還是選擇 React Native 會更好一些早直。

同時,從頁面框架和自動化工具的角度來看市框,React Native 也要領先于 Flutter霞扬。這主要得益于 Web 技術這么多年的積累,其工具鏈非常完善。前端開發(fā)者能夠很輕松地掌握 React Native喻圃,并進行移動端 App 的開發(fā)萤彩。

缺點:

1,官方不支持web端斧拍,就是說沒辦法將RN的代碼直接放在瀏覽器中運行

2雀扶,官方不支持熱更新,RN現(xiàn)階段還達不到H5那樣靈活發(fā)版在線更新

3肆汹,原生能力有限愚墓,不支持多媒體,而且當scrollview和listview相互嵌套時也會引發(fā)手勢沖突

4昂勉,復雜場景下內存性能有瓶頸

5浪册,出現(xiàn)過,將許可從MIT改成了BSD+專利岗照。只要是用了React村象,那么就不能和Facebook有專利上的糾紛,否則React許可就會被撤銷攒至。這么做哪個大廠敢用React厚者。雖然后來又改回了MIT許可。

6嗓袱,框架的優(yōu)勢除了編程語言籍救、頁面框架和自動化工具以外,React Native 的表現(xiàn)就處處不如 Flutter 渠抹。

2.Flutter

github Star:99.5k

優(yōu)勢:

首先在于其性能蝙昙。從最核心的虛擬機說起。React Native 所使用的 JavaScriptCore梧却, 原本用在瀏覽器中奇颠,用于解釋執(zhí)行網頁中的 JavaScript 代碼。為了兼容 Web 標準留下的歷史包袱放航,無法專門針對移動端進行性能優(yōu)化烈拒。

Flutter 卻不一樣。它一開始就拋棄了歷史包袱广鳍,使用全新的 Dart 語言編寫荆几,同時支持 AOT 和 JIT 兩種編譯方式,而沒有采用 HTML/CSS/JavaScript 組合方式開發(fā)赊时,在執(zhí)行效率上明顯高于 JavaScriptCore 吨铸。除了編程語言的虛擬機,F(xiàn)lutter 的優(yōu)勢還體現(xiàn)在 UI 框架的實現(xiàn)上祖秒。它重寫了 UI 框架诞吱,從 UI 控件到渲染舟奠,全部重新實現(xiàn)了,依賴 Skia 圖形庫和系統(tǒng)圖形繪制相關的接口房维,保證了不同平臺上能有相同的體驗沼瘫。

動畫流暢,很多開發(fā)者反應比原生安卓還流暢(存疑)咙俩,至少在iOS上是看

缺點:

Dart對開發(fā)者增加了學習成本耿戚,且UI布局復雜,不如XML可讀性高暴浦。Flutter支持的庫不如React Native和原生多溅话,而且很多組件需要重新開發(fā),不如React Native靈活歌焦。

3.Hippy

github Star:4.9k

優(yōu)勢:

Hippy 跨端框架是由QQ 瀏覽器部門發(fā)起的,針對前端開發(fā)者推出的跨端解決方案砚哆。為業(yè)內現(xiàn)存問題独撇,Hippy 緊貼 W3C 標準,遵從網頁開發(fā)各項規(guī)則躁锁,從前端開發(fā)人員角度出發(fā)纷铣,使用 Java 為開發(fā)語言,同時支持 React 和 Vue 兩種前端主流框架战转。對于前端開發(fā)者而言搜立,Hippy 上手難度會更低,學習曲線會更平滑槐秧。

缺點:

目前該項目開源不久啄踊,社區(qū)和相關文檔都不太完善,使用門檻暫時看還是較高的刁标。待后續(xù)社區(qū)生態(tài)等完善后颠通,可根據(jù)業(yè)務的實際情況及公司內部的資源配置。

4.Weex

github Star:17.6k

優(yōu)勢:

Vue 和?Weex?會進行官方合作膀懈,Weex 是阿里巴巴發(fā)起的跨平臺用戶界面開發(fā)框架顿锰,同時也正在 Apache 基金會進行項目孵化,Weex 允許你使用 Vue 語法開發(fā)不僅僅可以運行在瀏覽器端启搂,還能被用于開發(fā) iOS 和 Android 上的原生應用的組件硼控,Weex 的發(fā)展是由世界上最大的電子商務企業(yè)的需求在驅動,Vue 團隊也會和 Weex 團隊積極合作確保為開發(fā)者帶來良好的開發(fā)體驗

缺點:

開發(fā)工具還不完善胳赌,相關的技術文檔少之又少牢撼。技術選型有一致命要點:組內必須有人能搞定源碼級修改,還是要謹慎點匈织。社區(qū)也很弱浪默,都是一些線下的活動社區(qū)牡直。Weex 還在積極發(fā)展,成熟度也不能和 React Native 相抗衡纳决。

但縱觀整個社區(qū)內的跨端開發(fā)框架碰逸,仍舊存在兩個主要問題:

跨端框架對前端開發(fā)者來講難度較高,如果不具備移動終端開發(fā)能力阔加,很難上手饵史;

平臺差異大,相同功能甚至要為不同的平臺使用不同的接口編寫大量平臺相關代碼胜榔。

出現(xiàn)上述問題的原因胳喷,是因為目前業(yè)內的跨端框架,大部分由終端開發(fā)者主導開發(fā)夭织,并不是從前端開發(fā)者角度出發(fā)的吭露,所以對于前端開發(fā)者來說不夠友好。

建議:

如果你的業(yè)務更看重熱更新尊惰,你的方向和技術棧更貼近 React 讲竿,你的崗位更多是前端領域,那么你選擇 react-native 會更適合弄屡,投入產出比更高题禀。

如果你是原生開發(fā),你更看重性能和跨平臺的兼容膀捷,那么 flutter 會更適合你迈嘹,因為現(xiàn)在 flutter 的開發(fā)崗位更多和原生開發(fā)綁定在一起。

(一旦需要做兼容處理時全庸,還是會要求熟悉Android和iOS開發(fā)技術秀仲,?這樣成本還是會不小,所以從長遠來看確實不能真正解決問題糕篇。但是我覺得從開發(fā)速度的角度來說啄育,跨平臺技術既能達到Web開發(fā)的速度,又能在一定程度上保證性能拌消,相對HTML混合開發(fā)還是有進步的挑豌。)

參考鏈接(國內大廠在移動端跨平臺的框架接入):

https://juejin.im/post/6844904177949212680

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市墩崩,隨后出現(xiàn)的幾起案子氓英,更是在濱河造成了極大的恐慌,老刑警劉巖鹦筹,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铝阐,死亡現(xiàn)場離奇詭異,居然都是意外死亡铐拐,警方通過查閱死者的電腦和手機徘键,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門练对,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吹害,你說我怎么就攤上這事螟凭。” “怎么了它呀?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵螺男,是天一觀的道長。 經常有香客問我纵穿,道長下隧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任谓媒,我火速辦了婚禮淆院,結果婚禮上,老公的妹妹穿的比我還像新娘句惯。我一直安慰自己迫筑,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布宗弯。 她就那樣靜靜地躺著,像睡著了一般搂妻。 火紅的嫁衣襯著肌膚如雪蒙保。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天欲主,我揣著相機與錄音邓厕,去河邊找鬼。 笑死扁瓢,一個胖子當著我的面吹牛详恼,可吹牛的內容都是我干的。 我是一名探鬼主播引几,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼昧互,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了伟桅?” 一聲冷哼從身側響起敞掘,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎楣铁,沒想到半個月后玖雁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡盖腕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年赫冬,在試婚紗的時候發(fā)現(xiàn)自己被綠了浓镜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡劲厌,死狀恐怖膛薛,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情脊僚,我是刑警寧澤相叁,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站辽幌,受9級特大地震影響增淹,放射性物質發(fā)生泄漏。R本人自食惡果不足惜乌企,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一虑润、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧加酵,春花似錦拳喻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陋葡,卻和暖如春亚亲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腐缤。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工捌归, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岭粤。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓惜索,卻偏偏與公主長得像,于是被迫代替她去往敵國和親剃浇。 傳聞我的和親對象是個殘疾皇子巾兆,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內容