關於Flutter iOS安裝包大小的解讀

ZacJi發表於2018-06-22

對於之前兩篇Flutter分別與iOS原生以及React Native對比的文章, 許多讀者留下了自己的看法和思路. 但是也有部分讀者發來了不同的聲音, 主要集中在Flutter安裝包大小和流暢度上. 我抽空做了下測試, 下面是我的測試結果.

安裝包大小

部分讀者提出, 他們打完的release包只有6~7MB, 和我提供的資料相差特別大, 認為我並沒有使用release包而是使用了debug包做對比.

關於Flutter iOS安裝包大小的解讀
(作者表示也摸不著頭腦啊?‍♂️)

起初我也是很奇怪, 反覆確認了自己的包是release無疑後, 嘗試思考其他方向. 我之前的安裝包資料都是直接釋出到App Store, 經由App Store雲端編譯後的版本.

關於Flutter iOS安裝包大小的解讀
我猜想網友可能是通過打本地AD Hoc包得出的不同結論, 於是我也嘗試打一個本地包, 結果....
關於Flutter iOS安裝包大小的解讀
emmmmmm.......

看來出現偏差的地方找到了, 但是為什麼雲端編譯的大小和本地包的差別這麼大呢? 我又測試了一下原生應用的情況, 發現本地包和雲端編譯包的大小几乎沒有區別.

關於Flutter iOS安裝包大小的解讀

關於Flutter iOS安裝包大小的解讀

那麼會不會是Flutter應用不同的打包方式, 包的內容不一樣呢? 我嘗試分別解包兩個ipa, 結果發現包裡面的內容竟然沒有區別, 而且, 解壓後的兩個包的大小也完全一樣.

結論可能就是, 兩種打包方式的壓縮比不一樣? 但是有一點是可以確認的, 就是不管是什麼打包方式, 最後安裝到手機上的磁碟佔用大小是一樣的, 都是30MB+. 因此, 我得到的這個結果解釋了部分網友的疑惑, 也印證了我之前對於Flutter應用的分析和判斷是沒有問題的.

另外要說的一點是, 我目前所做的測試都是以iOS平臺為基準, 並沒有加入安卓平臺. 安卓平臺根據網友發來的測試, 安裝包要明顯小於iOS平臺, 這是因為Flutter的部分框架本身就整合在安卓系統中, 而且Fuchsia必定會直接內建Flutter SDK, 屆時兩個平臺的差距將會更大.

流暢度

至於流暢度, 很多網友認為Flutter的流暢度沒有我測試結果那麼不堪, 認為我同樣使用了Debug模式用於測試. 由於每個人對於流暢度的感知靈敏度是不一樣的, 因此我除了提出了我個人的主觀感受之外, 還提供了Xcode的幀率記錄圖表. 此外, 我還將原生和Flutter專案上傳至了App Store和GitHub, 大家可以方便的下載到自己的裝置中去嘗試體驗.

但是我還是需要表明我的觀點: 至少目前來看, Flutter在iOS平臺的流暢度, 沒有完全達到iOS原生應用, 也沒有完全達到它所宣稱的60幀.

如果有任何疑問歡迎在下方留言.

相關文章