哈嘍,我是老劉
Flutter 3.29已經發布有一段時間了,老劉寫Flutter代碼已經6年多,對這種例行的Flutter版本更新基本上已經是內心毫無波瀾。
不過最近有不少朋友問要不要更新到最新版,這裏羅列一下從開發者角度看比較重要的更新,大家自己判斷。
一、架構與性能優化
- Dart 代碼執行線程調整
Dart 代碼現直接在 Android/iOS 的主線程運行,減少了線程切換開銷,但需注意可能加劇平台 UI 線程的負載,需通過性能分析工具監控卡頓問題。 - 渲染引擎變更
• iOS 平台完全移除了 Skia 渲染引擎,可能影響依賴 Skia 特性的應用;
• 無 Vulkan 驅動的 Android 設備改用 OpenGLES 的 Impeller 引擎,提升低端設備兼容性。
二、組件庫增強
組件庫的更新是例行的,基本每個發佈版本都會有。
但是通常老劉不建議使用最新的Flutter版本,所以這部分就略過了,感興趣的同學可以去看官方的發佈文檔。
不建議緊跟最新版主要有兩個原因:
1、依賴的三方庫可能還沒有支持。
2、穩定性還沒有經過大規模驗證,之前也出現過新的發佈版本引入一些很難規避的問題。
三、重大變更與棄用
-
構建工具鏈調整
• 移除 Flutter Gradle 插件(3.19 後已棄用),舊項目需遷移至 Kotlin 實現的 AGP 公共 API;
• Web 平台正式移除 HTML Renderer,強制使用 CanvasKit 或 WebAssembly。- 這一點要説一下,Flutter的web和標準的web開發已經完全不是一件事情了。考慮用Flutter做web端的同學要重點關注這一條。
- 官方 Package 停止維護
包括flutter_markdown、palette_generator等 6 個包將於 2025 年 4 月 30 日後停止支持,需尋找社區分叉或替代方案。
四、開發工具與調試
調試工具增強也屬於是例行更新,大家可以每過幾個大版本後系統瞭解一下最新的調試工具。
五、其他重要更新
• 多窗口支持推進:PC 端多窗口功能進入 PR 審查階段,預計年內落地。開發者苦多窗口功能久已啊。
• 主題規範調整:棄用 ThemeData.dialogBackgroundColor,遷移至DialogThemeData.backgroundColor,可通過 dart fix 自動修復。
六、升級建議
該版本涉及較多底層變更(如線程模型、渲染引擎),可能對現有項目產生兼容性影響。建議:
- 優先測試 UI 線程性能及渲染表現;
這一點可能比較重要,項目升級後一定要增加針對性的測試,特別是針對多種不同機型的覆蓋。 - 檢查 Gradle 插件和 Web 渲染器遷移需求;
- 使用
dart fix處理棄用 API。
dart fix這個工具還是建議大家利用起來,能很好的提升升級的效率,IDE會有自動化提示,很方便。
如需完整更新日誌,可參考官方文檔或遷移指南。
總結
總的來説對開發者影響最大的可能是Dart 代碼現直接在 Android/iOS 的主線程運行。開發者如果升級一定要做好測試覆蓋。
其它的功能更多是例行的優化與升級。
從最近幾個版本的升級來看,Flutter這個項目已經進入相對穩定的階段。
比較少出現重量級功能的變化,更多的以bug修復和功能優化為主。
這對開發者來説是非常好的事情。
而對於觀望者來説,通過每個發佈版本的更新情況,大致能估算團隊的投入程度。
基於這些數據去判斷比可以減少很多不必要的擔心與憂慮。
如果看到這裏的同學對客户端開發或者Flutter開發感興趣,歡迎聯繫老劉,我們互相學習。
點擊免費領老劉整理的《Flutter開發手冊》,覆蓋90%應用開發場景。
可以作為Flutter學習的知識地圖。
覆蓋90%開發場景的《Flutter開發手冊》