哈嘍,我是老劉
作為一個以Flutter為主要技術棧並且使用了差不多7年的開發者,其實老劉對Flutter版本更新的關注程度比很多人想象中要底很多。
本質上是因為在我的團隊裏對Flutter版本更新這件事會採用非常謹慎的策略。
我們的產品功能極少依賴最新版本的某個新組件,同時除非有非常嚴重的bug要解決,也不會急於升級到新版本。
但是Flutter 3.38版本我覺得各位開發者還是有必要關注一下的。
從Flutter本身的功能來看沒有特別重大的更新,但是對於Android和iOS原生系統的要求來説,這個版本還是非常重要的。
要點解讀
一、Dart 語言更新:Dot shorthands 默認開啓
Dot shorthands 是 Dart 3.6 中引入的“點速記”語法,允許在枚舉或靜態常量上下文中省略前綴,僅寫 .xxx,編譯器自動補全類型。
- 適用場景:枚舉值、靜態常量(如
MainAxisAlignment.start→.start)。 - 開啓條件:Flutter 3.38 默認啓用,無需額外配置。
// With shorthands
Column(
mainAxisAlignment: .start,
crossAxisAlignment: .center,
children: [ /* ... */ ],
),
// Without shorthands
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [ /* … */ ],
),
最主要的作用是減少樣板代碼,提升可讀性。
二、Web 開發增強
-
web_dev_config.yaml 配置開發服務器:
可設置 host/port/HTTPS 證書/headers,以及代理規則(將指定路徑轉發到後端)
-
Web 熱重載增強:
- -d web-server 模式下默認開啓 Web 熱重載,並支持多個瀏覽器同時連接
- 可用 --no-web-experimental-hot-reload 暫時禁用(後續版本會移除該禁用選項)
Flutter最近幾個小版本更新都在持續優化Web開發的部分,可見近期團隊的重點一部分放在這裏。
不過Flutter的web和常規的web開發兩者應用場景還是有區別的,開發者做技術選型時一定要根據實際場景考慮。
三、Framework優化
OverlayPortal 新能力
可將子 Widget 渲染到任意 Overlay(如 root overlay),並通過 overlayChildLayoutBuilder 精細控制位置。
感覺適合彈窗、氣泡、提示、對話框等複雜浮層的靈活佈局。
Windows 桌面增強
可訪問已連接顯示器列表(PlatformDispatcher.displays),查詢分辨率、刷新率、設備像素比、物理尺寸等屬性。
這次的桌面增強也屬於是完善桌面的功能完備性的一個組成部分。
Flutter的桌面端多窗口還沒有完整的實現,但是能看到各個細節在不停的補充進來。
對桌面端有需要的開發者目前仍然建議優先選擇其它技術棧,但是可以持續關注Flutter的桌面端多窗口功能的進展。
四、其它更新
Flutter 3.38 修復了 issue #173770:在 Android 端退出 Activity 銷燬時出現的嚴重內存泄漏。該缺陷自 3.29.0 引入,影響所有 Flutter 應用。
升級提示
Flutter 3.38 從功能上看沒有特別重大的更新,但是對Android和iOS原生來説都有比較重要的 影響。
- Android:默認 NDK 版本升級為 r28,滿足Google Play 16 KB 頁面大小兼容性要求。
-
iOS:提供了對 UIScene 生命週期的支持。
老劉在文章結尾的官方鏈接部分也有給出UIScene 生命週期的官方遷移指南。
因此,雖然從功能上看沒有升級的必要,但是從原生的角度來説,確實是建議升級的。
根據我們一貫的升級核心原則:2~3個月觀察期,別當小白鼠
新版本發佈後的前兩三個月是“真人實驗期”,嚴重問題通常在這段時間集中暴露。
等社區反饋、官方 issue 修復進度、第三方插件兼容性穩定後,再將其提升為主力版本。
老劉也會在每個月發佈的《Flutter版本選擇指南》中更新 Flutter 3.38 版本的最新情況。
歷史鏈接:
- Flutter版本選擇指南:避坑3.27,3.35基本穩定 | 2025年10月
- Flutter版本選擇指南:避坑3.27 | 2025年9月
總結
Flutter 3.38 從功能本身來説並非“重大升級”,更像是常規迭代與體驗優化(Web 開發流程、桌面細節、語法易用性)。
但是不管是Android端的16k頁面大小兼容還是iOS端的UIScene生命週期遷移,都對客户端的開發有比較重要的影響。
因此建議將 3.38 設為候選版本,等待2–3 個月觀察窗口。沒有重大問題後再提升為日常主力版本。
官方鏈接
-
Release Notes(3.38.0):
https://docs.flutter.dev/release/release-notes/release-notes-...
(官方版本更新內容與變更説明)[來源:Flutter Docs]
-
Breaking Changes & Migration:
https://docs.flutter.dev/release/breaking-changes
(所有破壞性變更與遷移指南索引)[來源:Flutter Docs]
-
UIScene 生命週期遷移(iOS 必讀):
https://docs.flutter.dev/release/breaking-changes/uiscenedele...
(蘋果要求採用 UIScene 生命週期,需按此遷移)[來源:Flutter Docs]
-
What's New(文檔站新增內容):
https://docs.flutter.dev/release/whats-new
(該頁明確本次版本重點並指向相關指南)[來源:Flutter Docs]
-
官方技術博客(3.38 總覽):
https://blog.flutter.dev/whats-new-in-flutter-3-38-3f7b258f7228
(本次版本的特性、工具鏈要求與已知問題)[來源:Flutter Blog]
如果看到這裏的同學對客户端開發或者Flutter開發感興趣,歡迎聯繫老劉,我們互相學習。
點擊免費領老劉整理的《Flutter開發手冊》,覆蓋90%應用開發場景。
可以作為Flutter學習的知識地圖。
覆蓋90%開發場景的《Flutter開發手冊》