【文章內容使用 Gemini 2.5 Flash 自動翻譯產生】
在 Google I/O 2026 賦予開發者能力
Flutter 3.44 登場,這是一個重大版本!此版本慶祝 Flutter 時間軸上的一個里程碑:Android 上的 Hybrid Composition++、Swift Package Manager 成為新的 iOS/macOS 預設值,以及 Impeller 對 Vulkan 的改進支援。我們正在預覽多視窗桌面支援,Canonical 將成為我們新的主要維護者,並透過將 Material 和 Cupertino 從核心框架解耦,開啟一項重要的架構演進。我們正在透過 GenUl 重新定義代理使用者體驗的 UX,並透過 Agentic Hot Reload 和 Dart & Flutter Agent Skills 重新構想開發者體驗。Flutter 正在賦予新一代應用程式無處不在的能力,從 2026 年 Toyota RAV4 多媒體系統到即將推出的 LG webOS SDK。我們非常興奮能與您分享所有新聞和更新;歡迎來到 Flutter 3.44!
今年 Google I/O 上 Flutter 的主題是:Flutter 無處不在,日復一日,由每個人建造,為每個人服務。
「無處不在,日復一日」源於我週二在使用手機上的應用程式時的一個發現:Flutter 應用程式無處不在我的生活中,從在灣區追蹤我的餐點到在日本購物。數字也支持這一點:pub.dev 生態系統比以往任何時候都更受歡迎,僅在過去 30 天內,套件下載量就超過 13 億次。Flutter 現在是兩個主要應用程式商店中 第二受歡迎的行動開發 SDK,每月開發者超過 150 萬,僅一年就增長了 50%。
「由每個人建造,為每個人服務」反映了我與 Google I/O 共同主持人 Kate Lovett 關於我們全球社群喜悅的對話。我們 1,700 多名忠誠熱情的貢獻者 是這項進步背後的引擎,在過去一年中,他們在核心儲存庫中完成了 5,800 次變更。僅在此發佈週期中,我們就完成了來自 178 位獨特貢獻者 的 972 次提交,其中包括 61 位新貢獻者 完成了他們的第一批提交。我們的社群仍然是 Flutter 的命脈,確保它真正由每個人建造,為每個人服務。謝謝!
有很多變化要告訴您。您可能還想查看 Dart 3.12 版本中的變化。
開發者體驗
無論您是手動撰寫程式碼還是使用您喜歡的程式碼代理進行疊代,我們都希望讓使用 Flutter 建立應用程式的體驗盡可能高效。在此版本中,我們正在改進我們現有的開發者工具套件並引入新工具來增強您的開發工作流程。
DevTools 效能改進
我們正在引入細粒度分析以提高效率,並且我們針對包含許多檔案或目錄的專案的分析進行了效能改進。
我們還為 Flutter DevTools 增加了更多的穩定性和效能改進,包括預設使用 WASM 的變更,這使得 DevTools 更快、回應更靈敏。
了解更多:DevTools 2.55.0 和 2.57.0 的發佈說明。
Widget 預覽 (實驗性)
此版本為 Widget 預覽環境帶來了進一步的效能改進和功能:
- 預覽偵測重寫:偵測邏輯現在利用 Dart Analysis Server,顯著減少了 flutter 工具的記憶體使用量。對於 IDE 使用者,整體記憶體使用量應減少高達 50%。
- 預覽篩選:現在可以按群組、名稱以及腳本和套件 URI 篩選預覽,使在具有許多預覽的專案中工作變得更容易。特別感謝社群成員 NamanGoyalK 的 貢獻!
無 Rosetta 的原生 Apple Silicon 支援
運行 Apple Silicon 晶片的 Mac 開發人員不再需要安裝 Rosetta 轉譯層來運行 Flutter。所有 macOS 命令列工具,包括我們的 iOS 裝置通訊二進位檔,都已更新為在 ARM 上原生運行。此更新早於 Apple 計畫棄用 Rosetta 轉譯支援,確保您的開發環境在 Apple 硬體上是未來的。展望未來,Flutter 的未來版本將完全終止對 Intel x86 Mac 的支援。如果您的團隊仍然依賴基於 Intel 的 Mac 主機進行開發,您應該開始規劃您的硬體遷移。
了解更多:在配備 Apple 晶片的 Mac 上使用基於 Intel 的應用程式 (support.apple.com)
在 AI 驅動的世界中重新構想開發者體驗
在過去的一年裡,Dart 和 Flutter 生態系統見證了 Antigravity、Gemini CLI、Claude Code 和 Cursor 等基於代理的工具的爆炸式增長,這些工具正在從根本上將開發者的角色演變為與代理進行架構和協調的角色。為了支持這種轉變,我們專注於增強我們的開發者體驗基礎並引入新工具來增強您的開發工作流程。
與 Agentic Hot Reload 無縫整合程式碼代理
在 AI 輔助開發方面邁出了一大步,我們正在推出 Agentic Hot Reload:MCP 伺服器和您喜歡的程式碼代理現在將自動查找並連接到正在運行的 Dart 和 Flutter 應用程式。這意味著 Antigravity 等程式碼代理現在可以立即熱重新載入您正在運行的應用程式!當您提示您的 AI 助理編輯 UI 時,代理會編寫程式碼並自動觸發熱重新載入以立即向您顯示結果,無需手動設定。去試試看吧!我們還……
- 強化依賴搜尋:代理現在可以安全地讀取和搜尋套件依賴項中的檔案,而無需完全存取您的本地 pub 快取。
- 整合工具:我們整合了我們的 MCP 工具定義,顯著降低了您的代理工作流程的 Token 成本。
查看 Agentic Hot Reload 的實際應用:
我們最近還推出了 Dart 和 Flutter 的 Agent Skills,為您的程式碼代理配備了面向任務的生產級領域專業知識。這些技能提升了您的程式碼代理,並在完成諸如添加整合測試或設定本地化等任務時幫助您節省 Token,同時遵守推薦的最佳實踐。
了解更多:Introducing skills for Dart and Flutter,Dart and Flutter MCP server
Flutter 讓 AI 遍布每個螢幕:建立下一代 AI 原生應用程式
隨著 AI 驅動的功能從簡單的內容摘要演變為完全代理式的助理,我們專注於擴展 Dart 和 Flutter 生態系統,以在每個平台上提供這些體驗所需的基礎設施。
Firebase AI Logic
Firebase AI Logic 使您能夠從您的 Flutter 應用程式中呼叫 Gemini API 客戶端。
MacroFactor 是一個 Flutter 應用程式,它使用 Firebase AI Logic 直接連接到 Gemini 模型並利用其多模態功能。我一直在用它來追蹤我的餐點,只需拍照即可。這是一個應用程式的絕佳範例,它使用 AI 將繁瑣的雜務變成令人愉悅、看似神奇的使用者體驗。
Firebase AI Logic 現在提供 伺服器提示範本,無需直接將提示嵌入到您的應用程式程式碼中。
適用於 Flutter 的 Firebase Agent Skills 現已推出,提供逐步指導,幫助您更有效地建立全端 Flutter 和 Firebase 應用程式。
了解更多: MacroFactor 利用 Firebase、Flutter 和 Gemini 革新 40 萬+ 使用者的營養
Genkit Dart 預覽
我們也很興奮地分享 Genkit Dart 的預覽發佈,這是一個用於構建全端、AI 驅動和代理式應用程式的開源框架。它具有模型不可知的 API,支援 Google、Anthropic 和 OpenAI 等提供商。它隨附了您從原型到生產所需的一切,包括類型安全的結構化輸出、工具呼叫、多輪對話和內建可觀測性。
您也可以在 Flutter 應用程式中運行 Genkit Dart 伺服器端或客戶端!
1 | import 'package:genkit/genkit.dart'; |
了解更多:Genkit Dart:使用 Dart 和 Flutter 建立全端 AI 應用程式
Gemma 3n 影響力挑戰賽
我們非常自豪地看到 Flutter 開發人員正在突破 AI 的可能性極限。恭喜 Gemma Vision 的創建者 Tommaso Giovannini 和 Vite Vere 的創建者 Guido Marangoni 在去年的 Gemma 3n 影響力挑戰賽 中分別獲得第一和第二名。兩者都選擇 Flutter 來建立改變生活的工具:
- Gemma Vision 幫助視障人士感知世界
- Vite Vere 協助認知障礙人士完成日常生活中的任務。
了解更多:Gemma 3n Impact Challenge 獲勝者
Gemma 4
Gemma 4 最近發佈,它是一個輕量級、設備上模型,專為高級推理和代理工作流程、成本、設備上資料限制或網路限制而設計。其多模態功能非常出色,我對它執行多階段規劃和鏈接工具呼叫的能力印象尤為深刻。
歷史上,在不同的硬體上管理這些設備上模型很複雜。這就是為什麼我對 LiteRT-LM 如此興奮的原因。
了解更多:Gemma 4
LiteRT-LM for Flutter
當我深入研究 Gemma Vision 和 Vite Vere 的程式碼時,看到兩者都利用 flutter_gemma(一個可在 pub.dev 上取得的 Plugin)與 Gemma 整合,這真是令人鼓舞。
情況只會越來越好:我們很高興地宣布,針對 Flutter 的完整 LiteRT-LM 支援即將在 flutter_gemma 套件中推出。
LiteRT-LM 是 Google 的生產就緒、高效能、開源推理框架。這將抽象化硬體差異,讓您可以在裝置上運行 Gemma 4 等強大的設備端 AI 模型,同時確保在 Flutter 的所有 6 個穩定平台(Android、iOS、Web、Windows、Linux 和 macOS)上都能透過 GPU 和 NPU 加速實現最佳效能。
了解更多:flutter_gemma 套件和 LiteRT-LM。
Flutter + A2UI = GenUI
當談到 AI 驅動的使用者體驗時,我們都同意我們已經厭倦了 Markdown 文字牆——或者更糟的是純文字。
生成式 UI (GenUI) 是一種 UX 範式,AI 建立並回應即時 UI,而不是僅僅是文字,如 Hatcha Demo 應用程式所示。
在過去一年中,我們的 GenUI 團隊一直在作為專案合作夥伴推動這一進程,定義新興的 A2UI 協定。A2UI 是 Google 的開源協定,定義了代理和客戶端如何協作組合和狀態使用者介面。
自去年底推出 Flutter GenUI SDK 以來,我們看到了令人難以置信的發展勢頭,自年初以來,套件下載量增長了 500%。
一個突出的例子是 Catagay Ulusoy 的 Finnish it (Google Play 商店,Apple 商店)。這個應用程式不僅建立自訂課程計畫來幫助使用者學習芬蘭語;它還會動態為每節課構成完美的 UI。如果您上個月觀看了 Cloud Next 開發者主題演講,您可能已經看到 Flutter DevRel 負責人 Emma Twersky 為該應用程式和 Catagay 做了應得的宣傳!
了解更多:genui 套件
視覺佈局實驗
Google DeepMind 的李特·程和他的團隊是 GenUI 領域的先驅。還記得因為在 2023 年 Flutter 圈子中流傳的紅色調試橫幅而廣為人知的 這個 Demo 嗎?是的,那就是李特·程的團隊!
他加入了我們的 Flutter 最新功能演講,分享了他使用 Flutter 建立 Gemini 應用程式「視覺佈局」實驗的經驗。這是網頁版本:
他談到了為什麼他的團隊傾向於選擇 Flutter 作為他們的首選 UI 工具包……提示:這就是我們都喜歡 Flutter 的原因:
- 美麗的 UI
- 高效的開發者體驗
- 多平台支援
- 一個完美適合 GenUI 的架構(李特·程的話,不是我的!😉)
以下是他的 3 個主要心得,您可以將其用於自己的 GenUI 專案:
- 依賴具有意見的框架來保持 AI 的一致性
- 使用「AI 評論家」循環以確保可靠的輸出
- 使用模板平衡速度和控制。
最後,李特·程挑戰我們超越文字牆和聊天機器人,而是建立豐富、互動、令人愉悅的體驗。
了解更多:Flutter 的 GenUI SDK,如果您想要一個帶導向的教學,請 嘗試 Codelab。
Android 支援
Googlebook 和周邊支援
Flutter 已具備處理由 Gemini 驅動的新 Googlebook 筆記型電腦的能力。由於 Flutter 針對 Android 的大螢幕指南,應用程式可以自然地處理外部硬體輸入。觸控板捲軸、滑鼠懸停狀態、右鍵選單和鍵盤快捷鍵預設都能運作。由於 Flutter 在 macOS、Windows 和 Linux 上都有成熟的桌面支援,因此 Flutter 應用程式在 Googlebook 上會感覺原生且反應靈敏,而不是看起來像拉伸的行動應用程式。現有的行動應用程式在 Googlebook 上會很舒適,無需大量重寫。
了解更多:Introducing Googlebook, designed for Gemini intelligence
Android 17
Android 17 即將推出,團隊正在積極測試 Flutter 與最新的 Android 17 beta 版,以確保您的應用程式繼續按預期工作。我們還主動整合最新的安全性和可用性功能,例如本地網路保護和安全動態程式碼載入。
您可以在 GitHub 上監控我們正在進行的進度。我們鼓勵您 下載 Android 17 beta 版 並立即開始測試您的應用程式。如果您遇到錯誤或發現任何遺漏的功能,請 提交議題!
了解更多:Android 17 GitHub 專案
Hybrid Composition++ for Android
將網頁視圖或地圖等原生 Android 組件嵌入到 Flutter 應用程式中,歷史上一直迫使開發人員在影格速率和保真度之間做出選擇。舊的渲染策略在捲軸時會出現畫面撕裂、文字輸入損壞或高 CPU 開銷等問題。
Flutter 3.44 引入了 Hybrid Composition++ (HCPP) 作為可選功能來解決這些問題。HCPP 不再依賴離線緩衝區或強制 Flutter 引擎處理原生視圖,而是將圖層合成直接委託給 Android OS。該過程利用 Vulkan 圖形函式庫的低階存取,使用硬體緩衝區交換鏈和 SurfaceControl 事務來同步 Flutter UI 與原生 Android 視圖。
結果是高效能的捲軸和精確的觸控輸入。它還為 SurfaceView 組件帶來了可靠的支援,這些組件在舊模式下曾帶來挑戰。
HCPP 有 Android API 和硬體要求,因此即使啟用 HCPP,也並非所有裝置都可以使用 HCPP。沒有新的 API 需要採用,您只需啟用該旗標即可升級現有的平台視圖。您可以透過將 --enable-hcpp 旗標傳遞給運行命令,或將設定旗標新增到 AndroidManifest.xml 檔案中,在未來成為預設渲染模式之前測試新模式:
1 | <meta-data |
了解更多:使用平台視圖在您的 Flutter 應用程式中託管原生 Android 視圖
Android 顯示器圓角半徑支援
為協助您在現代行動裝置上建立像素完美的佈局,Flutter 現已直接與 Android 硬體整合,以支援顯示器圓角半徑 (#179219)。Flutter 現在可以查詢裝置顯示器的物理和邏輯圓角半徑,並透過 MediaQuery 暴露此資訊。這使您的 UI 能夠準確地遵守硬體幾何,確保內容永不被積極圓角的螢幕剪裁。
了解更多:MediaQueryData.displayCornerRadii
Android Gradle Plugin 9.0 和內建 Kotlin
在 Android Gradle plugin (AGP) 9 之前,Android 應用程式和 Plugin 開發人員必須手動將 Kotlin Gradle plugin (KGP) 添加到他們的建置檔案中,以便系統能夠理解和編譯 Kotlin 程式碼。從 AGP 9.0 開始,Android 建置系統原生處理 Kotlin。由於建置系統已經知道如何處理 Kotlin,手動添加單獨的 KGP 現在會產生衝突並導致建置失敗。此重大變更影響了套用 KGP 的應用程式和 Flutter Plugin。
Flutter 團隊添加了臨時向下兼容性,以確保現有專案安全建置。手動套用 KGP 的支援將在未來版本中移除。
應用程式開發人員說明
如果您開發 Flutter 應用程式,您需要更新您的 Android 建置檔案以移除單獨的 Kotlin Gradle Plugin (KGP)。
注意:如果您的遷移應用程式使用仍然套用 KGP 的 Flutter Plugin,您的建置將會失敗。由於只有 Plugin 作者可以修復此問題,請將 問題回報給 Plugin 作者。
了解更多:有關完整的逐步說明,請參閱 應用程式開發人員遷移指南。
Plugin 作者說明
Plugin 的遷移過程需要類似的 Gradle 檔案變更,以及重要的版本限制更新。為確保相容性,您必須更新 pubspec.yaml 檔案以 設定 Flutter 最低版本限制為 3.44。
了解更多:有關完整檢查清單,請參閱 Plugin 作者遷移指南。
ABI 篩選變更
ABI 決定了您的編譯應用程式支援哪些裝置硬體架構(例如 ARM 或 x86)。Flutter 過去以程式設計方式將 ABI 篩選器應用於每個特定的建置類型,但現在在基本 defaultConfig 區塊中配置一次。由於 AGP 9 將預設配置與特定建置類型和風味結合,而不是覆蓋它,因此使用自訂 ABI 設定需要額外的步驟。
如果您的應用程式在特定的建置類型或產品風味中使用了自訂 abiFilters,您現在需要在建置或運行應用程式時傳遞 -Pdisable-abi-filtering=true 旗標。
了解更多:有關更多詳細資訊,請參閱 風味指南。
iOS 支援
Swift Package Manager 現在是 iOS 和 macOS 的預設值
從 Flutter 3.44 開始,Swift Package Manager (SwiftPM) 取代 CocoaPods 成為 iOS 和 macOS 應用程式的預設依賴管理員。Flutter CLI 會自動處理此遷移。當您建置或執行應用程式時,CLI 會更新您的 Xcode 專案以使用 SwiftPM,從而無需管理 Ruby 或 CocoaPods 安裝!
了解更多:告別 CocoaPods:Swift Package Manager 即將成為 Flutter 的預設值!
Add-to-App 整合也更具彈性。如果您將 Flutter 嵌入到現有的 iOS 應用程式中,新的 flutter build swift-package 命令會將您的 Flutter 應用程式或 Add-to-App 模組打包為 Swift Package,以便在您的原生專案中輕鬆使用。
了解更多:查看 更新的文件,了解如何與 SwiftPM 整合。
如果您的應用程式依賴仍需要 CocoaPods 的 Plugin,Flutter CLI 將會列印警告,並暫時退回到 CocoaPods 以處理這些依賴。我們建議要求這些套件維護者進行更新,因為 CocoaPods 支援最終將完全移除。為了鼓勵生態系統採用,具有 SwiftPM 支援的套件現在會在 pub.dev 評分中獲得額外分數。
如果您是 iOS 或 macOS Plugin 的維護者,您需要將 SwiftPM 支援加入您的套件中。如果您在 2024 年試點期間進行了遷移,請確保您也在 Package.swift 檔案中將 FlutterFramework 加入為依賴項。
如果 SwiftPM 導致您的專案出現重大問題,您可以透過在 pubspec.yaml 中設定 --enable-swift-package-manager: false 來暫時停用它。如果您使用此選擇退出功能,請在 GitHub 上提交錯誤報告並附上您的 Xcode 專案檔案,以便我們進行調查。請注意,此選擇退出功能最終將被移除。
了解更多:適用於 Plugin 作者的 Swift Package Manager
Flutter 支援 UIScene
從 iOS 13 開始,Apple 引入了基於「Scene」的生命週期,以支援多視窗體驗。在 WWDC 2025 期間,Apple 宣布使用最新 SDK 建立的應用程式很快將被要求使用 UIScene 生命周期來啟動。此更新對於滿足 Apple 對即將推出的 iOS 版本的需求至關重要。
Flutter 3.44 中沒有新的變更,但我們想提醒您在 Apple 預設開始強制使用此新 API 之前進行遷移。如果您的 AppDelegate 未自訂,Flutter CLI 會自動遷移您的應用程式。但是,如果您的程式碼修改了 UI 生命週期事件,您應該遵循完整的遷移指南。
了解更多:UISceneDelegate 遷移指南
iOS 預測文字 (實驗性)
我們正在為文字輸入欄位引入原生 iOS 行內預測文字的實驗性支援 (#183650)。此功能預設是關閉的,但您可以透過啟用 TextField.enableInlinePrediction 來選擇啟用和測試它。啟用後,在您的應用程式中輸入的用戶可以透過按下 Space 鍵來接受 iOS 預測的文字(例如,輸入「My n」並接受「ame」)。請注意,此預測文字的視覺樣式仍在積極完善中,我們感謝您在我們完成此功能時提供的回饋。
了解更多:TextField.enableInlinePrediction
網頁
輔助功能
無障礙功能和使用者偏好設定也得到了大幅提升,預設支援瀏覽器的 prefers-reduced-motion 設定以自動停用動畫,同時使用 aria-description 提供表單驗證錯誤的即時螢幕閱讀器回饋。
了解更多:prefers-reduced-motion CSS 媒體功能 (mozilla.org)
平台和工具
開發工作流程和瀏覽器整合從未如此流暢。引擎現在透過在焦點轉換時重複使用 DOM 表單來處理 iOS 26 Safari 中的自動填充,同時改進網頁捲軸和鍵盤事件合成以實現穩健的可靠性。此外,CLI 透過將 --base-href 支援直接帶到 flutter run,簡化了網頁應用程式的編排,與生產建置配置相匹配。
了解更多:PR #182024、PR #179703、PR #180692
桌面支援
我們很高興地宣布與 Canonical 擴大合作關係,Canonical 將擔任 Flutter Desktop 的主要維護者和策略管家。 憑藉其深厚的技術專業知識,Canonical 將主導 Flutter Desktop 路線圖,並監督我們 Linux、Windows 和 macOS 嵌入器的維護。
這次合作僅是更廣泛生態系統擴展的第一步。展望未來,我們正在積極擴大與更多合作夥伴的治理,將 Flutter 的高效能、多平台體驗帶到更多環境和產業。
敬請期待更多關於這次合作的消息!
若要洽詢與 Flutter 團隊合作事宜,請聯絡 [email protected]。
視窗 API (實驗性)
⚠️注意:視窗功能目前僅在 main channel 上可用。它們尚未用於生產用途。
Canonical 在桌面實驗性視窗 API 方面繼續取得卓越進展!新功能包括:
- 工具提示:Flutter 現在支援 Linux、macOS 和 Windows 上的工具提示視窗 (#182348、#180895、#179147)。
- 彈出視窗:Flutter 現在支援 macOS 上的彈出視窗 (#182371),預計未來版本將支援 Linux 和 Windows。
- 對話框:Material 的
showDialog函數現在在支援視窗的平台上建立一個單獨的子對話框視窗 (#181861)。
最後,Linux 現在支援內容大小的視圖 (#182924)。這讓您可以根據內容動態調整視窗大小,這對於彈出式或工具提示視窗很有用。
了解更多:若要搶先預覽桌面實驗性視窗 API,請查看 multiple_windows 範例。
Windows 手寫筆支援
使用 Flutter 建立的 Windows 應用程式獲得了針對數位藝術家和筆記記錄者的重大升級!感謝社群成員 CodeDoctorDE 的出色貢獻,Flutter Windows 現在支援手寫筆輸入,包括精確追蹤手寫筆旋轉和壓力感應。
了解更多:PR 165323: 允許 Windows 上的手寫筆支援
嵌入式
Toyota
2025 年 Toyota RAV4 是全球最暢銷的汽車。現在,2026 年 RAV4 將使用 Flutter 為其多媒體系統提供動力。
上個月,我經歷了職業生涯中的一個亮點:有機會前往德州普萊諾,參觀 Toyota Motor North America 和 Toyota Connected 辦公室,與工程團隊討論 Flutter 如何改變他們設計、建造和交付多媒體系統的遊戲規則:從辦公室的測試單元到車道上的汽車。作為一名 Flutter 工程師和在一個只購買豐田的家庭中長大的汽車迷,我很高興看到 Flutter 在 2026 年 RAV4 上運行。我在外面看到了這麼多次。(嗯——無處不在??)
感謝 Toyota Motor North America 和 Toyota Connected 團隊的熱情款待!
查看展示影片:
了解更多:Toyota 的新聞稿,Toyota 多媒體系統的最新演進即將出現在您的螢幕上
LG
LG 即將推出 webOS SDK,以幫助開發人員輕鬆建立針對 WebOS 裝置的 Flutter 應用程式,賦能 Flutter 在大螢幕及其他領域的應用。
webOS SDK 將包含對 Firebase、影片播放器、遊戲手把等外掛程式的支援。它甚至將支援您熟悉和喜愛的所有 Flutter 功能,例如有狀態熱重新載入和使用 Riverpod 進行狀態管理。
請密切關注未來幾週內這個令人興奮的發佈!
圖形和引擎增強
此版本為 Impeller 後端帶來了有針對性的渲染和效能增強。
Impeller 改進
Vulkan
此版本包括多項 Vulkan 改進,包括更好的快取記憶體管理,以及在掉幀情況下更高效的 GPU/CPU 同步。
使用 SDF 製作更清晰的圓圈
圓圈渲染的數學已更新,以支援使用帶符號距離函數製作更清晰的圓圈。以前它們有時會出現鋸齒,但這個問題已解決。(#183536,#183184)
陰影和透視校正
改進了 Impeller 處理透視矩陣的方式,修正了陰影和透視投影變換的渲染行為。(#181434,#183187)
FragmentShader 改進
感謝以下增強功能,撰寫片段著色器現在更加直觀且不易出錯。
按名稱 API 獲取 Uniform
您現在可以透過名稱而非手動偏移來綁定著色器中的 uniform 變數,大幅簡化著色器程式碼設定:
1 | void setUp(ui.FragmentShader shader) { |
了解更多:撰寫和使用 FragmentShaders,FragmentShader.getUniformFloat
更清晰的著色器編譯器診斷
著色器編譯器現在在編譯與 Skia 不相容的著色器時會產生警告,幫助您在部署前識別跨平台渲染問題 (#182786,#183146)。
框架
此版本平衡了重大的架構轉變與對品質和社群驅動的改進的嚴格關注。當我們開始將 Material 和 Cupertino 函式庫從核心框架策略性地解耦為獨立套件時,核心框架透過網頁渲染的重大更新、基礎穩定性改進和增強的平台整合而繼續成熟。
Material 和 Cupertino 更新
此版本標誌著 Material 和 Cupertino 函式庫的一個重要里程碑。這些函式庫在此版本中已被凍結,代表著這些函式庫在核心框架內的最後一組更新,之後它們將轉換為獨立套件:material_ui 和 cupertino_ui。在下一個穩定版本之前,框架中這些函式庫的版本將被棄用,您將能夠遷移到新的、獨立版本控制的套件。
了解更多:有關此轉換的更多資訊,請閱讀 關於凍結的部落格文章 並追蹤 將這些函式庫從核心框架解耦的主要追蹤議題。
儘管被凍結,這個版本還是包含了許多改進。一個重要的亮點是 Cupertino 函式庫中選單的現代化。新的 CupertinoMenuAnchor Widget 建立在靈活的 RawMenuAnchor 基礎上,為 iOS 應用程式提供了更穩健和原生感覺的選單體驗 (#182036)。這項工作歸功於社群成員 davidhicks980 的廣泛貢獻,他還創建了 RawMenuAnchor Widget。
了解更多:CupertinoMenuAnchor
在 Material 方面,選單也得到了改進,為 MenuAnchor 類別添加了 Material 3 動畫。這些動畫提供了更流暢、更靈敏的感覺,SubmenuButton 上的新 hoverOpenDelay 參數讓您可以更精確地控制子選單互動。動畫預設禁用,透過設定 animated 為 true 啟用。(#176494)。
了解更多:MenuAnchor,SubmenuButton.hoverOpenDelay
此版本還讓 CupertinoSheetRoute 中的可捲軸內容與拖曳動畫無縫協作,實現了捲軸和關閉頁面之間更流暢的過渡 (#177337)。對於需要自訂拖曳區域的開發人員,新的 scrollableBuilder 允許您將受管理的 ScrollController 傳遞給主體的可捲軸區域,以便為您協調頁面拖曳。
了解更多:CupertinoSheetRoute,CupertinoSheetRoute.scrollableBuilder
此版本中,CarouselView 組件在功能上進行了重大改進。它現在支援無限捲軸 (#175710),讓您可以建立無縫循環的輪播。它還具有新的 onIndexChanged 回調和其控制器上的 leadingItem 屬性,當使用者與輪播互動時,可以更好地了解輪播的狀態 (#180667)。
了解更多:CarouselView
新的設計原始元件讓實現複雜的 UI 效果變得更容易,例如新的 ShapedInputBorder。這允許 Material Widget 透過指定任何 ShapeBorder 來使用形狀建立輸入邊框。例如,這對於使用 RoundedSuperellipseBorder 以 iOS 樣式顯示 Material 輸入邊框非常有用。(#177220)。同樣,CupertinoFocusHalo 現在支援超級橢圓形狀,確保跨不同 Widget 幾何的一致焦點指示器(#180724)。
了解更多:ShapedInputBorder
幾個現有小部件也得到了改進。Expansible 小部件(其底層支援 Material 的 ExpansionTile)現在功能更強大。ExpansibleController 和 ExpansionTileController 上現在都有一個新的 toggle 方法,並附有改進的文檔和範例(#181320,#180273)。此外,Material 的列表圖塊,RadioListTile、CheckboxListTile 和 SwitchListTile,現在正確接受 WidgetStatesController,允許對其視覺狀態進行更多程式化控制(#180367)。
輔助功能:為所有使用者提供更具包容性的體驗
使應用程式對每個人都可存取仍然是 Flutter 框架的核心優先事項。此版本引入了與平台特定輔助設定的更深層次整合,提高了語義公告的精確度,並改進了常見 UI 組件的輔助功能。
對於 iOS 開發人員,此版本新增了對幾項新的輔助動作功能的支援 (#178102)。您的應用程式現在可以回應使用者對以下功能的偏好:
- 自動播放動畫圖片:偵測使用者何時偏好暫停自動播放的 GIF 或其他動畫內容。
- 自動播放影片預覽:通知應用程式使用者是否已停用影片預覽的自動播放。
- 偏好非閃爍游標:允許應用程式為覺得閃爍游標分散注意力或難以追蹤的使用者提供穩定的、非閃爍的文字指示器。
- 這些設定透過
AccessibilityFeatures物件公開,讓您可以在 iOS 上建立更靈敏和尊重的 UI。
進度指示器也獲得了生活品質的改進。您現在可以使用百分比字串(例如「50%」)作為 ProgressIndicator 的 SemanticsValue (#183670)。這允許螢幕閱讀器以更自然、更易於閱讀的格式公告進度,而不僅僅是原始十進位值。
此版本還完善了核心 Widget 的語義。Slider Widget 的語義節點已被重構,以更準確地反映其大小和位置,從而改善了透過觸摸探索或輔助設備導航的用戶體驗 (#184168)。此外,對捲軸視圖的修復確保不可見的輔助功能元素不再錯誤地呈現在可捲軸內容之前,從而導致更清晰、更可預測的導航流程 (#184155)。
總而言之,這些變更確保 Flutter 應用程式繼續在所有平台上提供高品質、包容的體驗。
零寬度/高度 Widget 的彈性
此版本的一個主要重點是改進框架在 Widget 渲染為「0x0 環境」時的穩定性——即 Widget 被賦予零寬度或高度的情況,這在以前可能會觸發佈局錯誤或意外崩潰。感謝社群成員 ahmedsameha1 的逐步穩定貢獻,我們為許多核心 Widget 添加了零大小覆蓋,包括 Hero (#180954)、Icon (#181021)、AnimatedPadding (#181235) 和 GridPaper (#180906)。這些更新確保您的應用程式在複雜的佈局轉換或高度受限的視窗中保持彈性。
SelectableRegion 改進
我們已解決 SelectableRegion 中的兩個關鍵問題,以改進原生和網頁平台上的佈局保真度和文字選取行為:
網頁佈局限制保留
以前,SelectableRegion 在網頁上渲染時可能會導致其子項意外縮小。它現在正確地將所有佈局限制未經修改地傳遞給其子項,確保一致的大小調整行為 (#184083)。
多行複製精確度
SelectableRegion 中的文字選取現在更加精確——當使用者選取並複製多行文字時,換行符號現在在複製的輸出中正確保留,而不是遺失 (#184421)。
重大變更和棄用
此版本包含幾個重要的棄用和重大變更,作為持續現代化和改進 Flutter 框架的一部分。
RawMenuAnchor 回調調整
RawMenuAnchor 的某些回呼的呼叫順序已調整,以允許更靈活和可預測的自訂。
此版本中的主要棄用項目包括:
- CupertinoSheetRoute:
showCupertinoSheet和CupertinoSheetRoute中的builder和pageBuilder參數現在已被棄用,取而代之的是scrollableBuilder(#177337)。此變更允許更好地整合可捲動內容與工作表的拖曳動畫。 - ReorderableListView:
onReorder回呼已被棄用,取而代之的是更精確的onReorderItem(#178242)。新的回呼提供了一個更可預測的newIndex,該newIndex考慮到項目在重新插入之前被移除的情況。 - 工具:Flutter 工具中的
--web-hot-reload旗標現在已被棄用,因為網頁的熱重新載入現在透過更現代的機制處理 (#181884)。此外,plugin_ffi模板已被棄用,取而代之的是支援 FFI 的更穩健的 Plugin 模板 (#181588)。
了解更多:有關這些及其他變更的更多詳細資訊和遷移指南,請參閱 flutter.dev 上的 重大變更頁面。
Flutter 無處不在,日復一日。
Flutter 的觸及範圍廣及行動、桌面、網頁和嵌入式系統,儘管個別功能令人印象深刻,但它們共同為開發人員提供了一個強大的平台,賦予超過 150 萬名開發人員能力,建立令人難以置信的使用者體驗,這些體驗無處不在,日復一日地被使用。您可以在從業務工具和日常應用程式中找到 Flutter,例如 NotebookLM、Talabat、Zoho 和 Karaca,到 2026 年 Toyota RAV4 和 LG 的 webOS 裝置資訊娛樂系統等高調嵌入式實作。
Flutter 由每個人建造,為每個人服務。
Flutter 的成功建立在您的回饋之上!我們致力於保持對話——無論是透過評論、議題還是我們即將進行的開發者調查。您的意見是推動您喜愛功能的原因,所以請繼續與我們分享。
這個生態系統依賴於 LG、豐田和 Canonical 等行業領導者,最重要的是,依賴於每天使用 Flutter 建立應用程式的超過 150 萬開發人員。我們非常高興能繼續共同建立和發展這個精彩的 Dart & Flutter 生態系統。
若要試用所有新功能、優化和圖形增強功能,只需簡單地:
1 | flutter upgrade |