對於之前兩篇Flutter分別與iOS原生以及React Native對比的文章, 許多讀者留下了自己的看法和思路. 但是也有部分讀者發來了不同的聲音, 主要集中在Flutter安裝包大小和流暢度上. 我抽空做了下測試, 下面是我的測試結果.
安裝包大小
部分讀者提出, 他們打完的release包只有6~7MB, 和我提供的資料相差特別大, 認為我並沒有使用release包而是使用了debug包做對比.
(作者表示也摸不著頭腦啊?♂️)起初我也是很奇怪, 反覆確認了自己的包是release無疑後, 嘗試思考其他方向. 我之前的安裝包資料都是直接釋出到App Store, 經由App Store雲端編譯後的版本.
我猜想網友可能是通過打本地AD Hoc包得出的不同結論, 於是我也嘗試打一個本地包, 結果.... emmmmmm.......看來出現偏差的地方找到了, 但是為什麼雲端編譯的大小和本地包的差別這麼大呢? 我又測試了一下原生應用的情況, 發現本地包和雲端編譯包的大小几乎沒有區別.
那麼會不會是Flutter應用不同的打包方式, 包的內容不一樣呢? 我嘗試分別解包兩個ipa, 結果發現包裡面的內容竟然沒有區別, 而且, 解壓後的兩個包的大小也完全一樣.
結論可能就是, 兩種打包方式的壓縮比不一樣? 但是有一點是可以確認的, 就是不管是什麼打包方式, 最後安裝到手機上的磁碟佔用大小是一樣的, 都是30MB+. 因此, 我得到的這個結果解釋了部分網友的疑惑, 也印證了我之前對於Flutter應用的分析和判斷是沒有問題的.
另外要說的一點是, 我目前所做的測試都是以iOS平臺為基準, 並沒有加入安卓平臺. 安卓平臺根據網友發來的測試, 安裝包要明顯小於iOS平臺, 這是因為Flutter的部分框架本身就整合在安卓系統中, 而且Fuchsia必定會直接內建Flutter SDK, 屆時兩個平臺的差距將會更大.
流暢度
至於流暢度, 很多網友認為Flutter的流暢度沒有我測試結果那麼不堪, 認為我同樣使用了Debug模式用於測試. 由於每個人對於流暢度的感知靈敏度是不一樣的, 因此我除了提出了我個人的主觀感受之外, 還提供了Xcode的幀率記錄圖表. 此外, 我還將原生和Flutter專案上傳至了App Store和GitHub, 大家可以方便的下載到自己的裝置中去嘗試體驗.
但是我還是需要表明我的觀點: 至少目前來看, Flutter在iOS平臺的流暢度, 沒有完全達到iOS原生應用, 也沒有完全達到它所宣稱的60幀.
如果有任何疑問歡迎在下方留言.