iOS原生 VS Flutter評測

image

本人之前分別嘗試用iOS原生和Flutter寫了同一個小應(yīng)用, 一個空氣質(zhì)量查詢App, 名字叫Aireport, 目前已經(jīng)分別上架了App Store.

Aireport(iOS原生)

Aireport Flutter(Flutter版)

Aireport原本是我自己在用, 但是在初步學(xué)習(xí)了Flutter后我決定用Flutter最大限度的去模仿iOS原生版的應(yīng)用, 以評估Flutter是否有能力做到以假亂真的地步. 我們在上一篇文章中已經(jīng)探討了Flutter在開發(fā)中可能遇到的問題, 這篇文章我們將著重放在兩者用戶在實際體驗中的差距.

1.安裝包大小

安裝包大小決定了用戶等待下載的時間和可能會耗費的流量, 即便是即將邁入5G時代的今天, 我們依然需要盡量優(yōu)化應(yīng)用安裝的大小.

Flutter應(yīng)用安裝包和安裝后容量


image

iOS原生應(yīng)用安裝包和安裝后容量


image

雖然Flutter的結(jié)果我多少能夠猜到, 但安裝包9倍, 磁盤占用4倍的差距還是讓我感到失望, 何況如果我使用OC開發(fā)的話安裝包還能進(jìn)一步縮小(WWDC有可能將swift設(shè)為穩(wěn)定版嵌入iOS系統(tǒng)內(nèi)核, 屆時swift版將有望自動瘦身).
image

由于項目很小就百行代碼, 因此這30MB的空間占用基本就是Flutter的SDK容量.30MB的空間對于一款A(yù)pp來說已經(jīng)是一個不小的數(shù)字, 而且應(yīng)用之間不能共享SDK, 有幾個Flutter應(yīng)用就會有幾個Flutter SDK. 這讓技術(shù)團(tuán)隊在選擇開發(fā)框架時不得不著重考慮一下今后App的容量問題.

2.啟動速度

上面的應(yīng)用容量除了影響磁盤占用外, 對啟動速度也會有影響. 我在iPhone X上實測了一下, iOS原生應(yīng)用的冷啟動速度大概是在0.4秒左右, 而Flutter的冷啟動速度在1.5秒左右.


image

毫無意外iOS這一局又占上風(fēng). Flutter的啟動過程首先會去跑完完整的iOS原生應(yīng)用的所有流程直至第一個ViewController實例化后,再由VC去調(diào)用加載Flutter SDK, 初始化Flutter的運行時環(huán)境. 也就是說Flutter應(yīng)用的啟動時間=iOS原生應(yīng)用的啟動時間+Flutter環(huán)境的啟動時間. 用戶對于應(yīng)用的容量占用幾乎很難察覺, 但是應(yīng)用的啟動時間對用戶體驗的影響絕對是致命的(雖然現(xiàn)在的啟屏廣告已經(jīng)完全不考慮用戶體驗了). 在這一點上不知道往后Google團(tuán)隊還有沒有優(yōu)化的空間.

3.內(nèi)存占用

內(nèi)存占用一直是移動開發(fā)中的一個優(yōu)化重點.不過目前來看Release版的Flutter在內(nèi)存占用這一塊也沒有任何優(yōu)勢, SDK拖累是一方面, 單個頁面內(nèi)存占用也比原生多一倍.


image

注意, 我們知道Flutter在Build版本中的性能和Release是不一樣的, 同一個應(yīng)用, Build版的內(nèi)存占用在100M左右, 為了熱加載我也是忍了.

內(nèi)存占用不僅影響著應(yīng)用性能、電池?fù)p耗、 程序穩(wěn)定性, 最重要但是, 內(nèi)存占用越大, 被系統(tǒng)干掉后臺的可能性就越大. 我自己的使用體驗來看, iOS原生的Aireport基本上大部分時間都處于休眠狀態(tài), 而Flutter會在關(guān)閉不久后直接被系統(tǒng)干掉.

iOS特性支持

iOS應(yīng)用開發(fā)受益于強大的iOS系統(tǒng)和豐富的生態(tài)體系, 天生就具有大量實用且不可替代的特性, 例如Bitcode能夠在云端自動優(yōu)化我們App的代碼, 原生應(yīng)用默認(rèn)就支持增量更新袒哥、后臺應(yīng)用刷新等等.


image

很顯然Apple賦予iOS應(yīng)用的這些種種特性與Flutter應(yīng)用是無緣的, 如果Flutter能夠支持熱更新的化那么其可用價值就高了許多. 但目前實現(xiàn)起來還有諸多問題, 包括部署、性能問題, 以及蘋果對于熱更新的謹(jǐn)慎態(tài)度.

綜合了目前Flutter在開發(fā)中的體驗以及和原生應(yīng)用的比較, 我目前對Flutter的評估結(jié)果是: 再等等.

Flutter的確提供了一種不同于目前其他跨平臺開發(fā)框架的思路, 也極有可能成為未來跨平臺開發(fā)的標(biāo)桿. 如果你是個人開發(fā), 我還是建議你學(xué)習(xí)一下Flutter, 它的Dart語言凹嘲、weight化、數(shù)據(jù)綁定、單向數(shù)據(jù)流等等現(xiàn)代特性值得你去了解. 同時對于無法同時掌握多個移動開發(fā)平臺的小伙伴而言, 使用Flutter也是一種成本較為低廉的方法. 但是對于公司而言, Flutter還無法完全投入生產(chǎn)環(huán)境, 而且初期Flutter的開發(fā)成本未必會低于原生平臺.

目前Fuchsia的開發(fā)進(jìn)度還不得而知, Flutter也還處在Beta3階段. 相信等Fuchsia正式發(fā)布的時候才是檢驗Flutter正在實力的時候.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沉帮,一起剝皮案震驚了整個濱河市屡萤,隨后出現(xiàn)的幾起案子珍剑,更是在濱河造成了極大的恐慌,老刑警劉巖死陆,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件招拙,死亡現(xiàn)場離奇詭異,居然都是意外死亡措译,警方通過查閱死者的電腦和手機别凤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來领虹,“玉大人闻妓,你說我怎么就攤上這事÷有担” “怎么了由缆?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長猾蒂。 經(jīng)常有香客問我均唉,道長,這世上最難降的妖魔是什么肚菠? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任舔箭,我火速辦了婚禮,結(jié)果婚禮上蚊逢,老公的妹妹穿的比我還像新娘层扶。我一直安慰自己,他們只是感情好烙荷,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布镜会。 她就那樣靜靜地躺著,像睡著了一般终抽。 火紅的嫁衣襯著肌膚如雪戳表。 梳的紋絲不亂的頭發(fā)上桶至,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音匾旭,去河邊找鬼镣屹。 笑死,一個胖子當(dāng)著我的面吹牛价涝,可吹牛的內(nèi)容都是我干的剂桥。 我是一名探鬼主播岩睁,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼殴泰,長吁一口氣:“原來是場噩夢啊……” “哼审胚!你這毒婦竟也來了拆又?” 一聲冷哼從身側(cè)響起日戈,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤旷太,失蹤者是張志新(化名)和其女友劉穎倔监,沒想到半個月后席覆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體史辙,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年佩伤,在試婚紗的時候發(fā)現(xiàn)自己被綠了聊倔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡生巡,死狀恐怖耙蔑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情孤荣,我是刑警寧澤甸陌,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站盐股,受9級特大地震影響钱豁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜疯汁,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一牲尺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧幌蚊,春花似錦谤碳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至漩仙,卻和暖如春臭蚁,著一層夾襖步出監(jiān)牢的瞬間最铁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工垮兑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冷尉,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓系枪,卻偏偏與公主長得像雀哨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子私爷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,504評論 25 707
  • 用到的組件 1雾棺、通過CocoaPods安裝 2、第三方類庫安裝 3衬浑、第三方服務(wù) 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 14,601評論 1 180
  • 我常常在漆黑的夜里行走 走著走著捌浩,也常常回望 看看那影子有沒有跟上 倘若沒有工秩,我得回頭去找找 我能否在背上尸饺,背上一...
    樹房閱讀 402評論 0 0
  • 記錄每天花費的時間,是要當(dāng)下記錄助币,而不是后面補記浪听。了解自己的時間實際上是怎么耗用的。 騰出整塊的時間做重要的事情眉菱!...
    悠哉輕創(chuàng)聯(lián)盟閱讀 162評論 0 0
  • 如何讓你遇見我 在我最美麗的時刻 為這我已在佛前求了五百年 佛淤是把我化做一棵樹 長在你必經(jīng)的路旁 陽光下 慎重的...
    小夜燈_ea3d閱讀 143評論 0 0