【文章內容使用 Gemini 1.5 Pro 自動產生】
在 Google I/O 2024 上推出 Flutter 3.22 和 Dart 3.4
過去幾個月,Dart 和 Flutter 的空中交通管制特別繁忙,但我們很高興宣布 Flutter 3.22 和 Dart 3.4 已於今天順利推出,並可供使用,恰逢今年的 Google I/O!
我們始終致力於提供強大的語言和框架配對,讓您能夠從單個共用程式碼庫構建精美、豐富且快速的應用程式,以便您可以將應用程式交付給行動、網頁和桌面上的使用者,而無需分散您的產品路線圖。
Flutter 3.22 和 Dart 3.4 提供了效能改進和平台特定的細化,使我們更接近這個願景。我們特別興奮地分享我們在 Wasm 方面的旅程,但您還會發現更多內容,包括改進的 Impeller 渲染引擎、iOS 上更流暢的視覺效果和更低的 CPU 使用率、使用 Android 的預測性返回手勢增強的平台導航、使用 Google Mobile Ads SDK 擴展的變現選項,以及 DevTools 中一個全新的強大深度鏈接驗證器。Dart 開發人員將享受使用 IDE 中的 dart fix
簡化 API 遷移以及用於進階分析的新 DevTools 功能。此外,您現在可以預覽用於 Firebase Dart SDK 的 Vertex AI,將 AI 驅動的功能與強大的安全措施相結合。
今天,我們還將重點介紹頂尖公司如何使用 Flutter 來提高生產力並構建高效能的體驗。我們將重點介紹一些特別令人興奮的功能,這些功能讓我們更接近我們的目標,即在所有平台上提供類似原生的效能,並包括我們對生產力、開發人員體驗和遊戲的投資的最新更新。
如果您想詳細了解版本中包含的所有內容,請查看專門的 Flutter 和 Dart 文章。是時候放手一搏了!
Flutter 在行動中
Flutter 開發人員正在忙碌地將大型新應用程式發佈到應用程式商店。讓我們看看其中幾個。
幫助大型企業級應用程式在行動端和網頁端交付
- 在英國,金融機構 維珍金融 在其行動銀行和信用卡應用程式套件中使用 Flutter,以統一應用程式開發流程,加快變更速度,並提供行業領先的使用者體驗。
- 美國保險公司 GEICO 最近 分享了 Flutter 如何幫助他們改進 iOS、Android 和網頁上的品牌使用者體驗,減小程式碼庫的大小,並提高開發效率,所有這些都在規模上實現。
- 環球影城目的地與體驗 發佈了他們好萊塢、大阪和奧蘭多公園的新 Flutter 行動應用程式。觀看下面的影片,了解他們為什麼選擇 Flutter 以及 Flutter 的表現如何。
超越行動端和網頁端
- Canonical 團隊一直在與 Flutter 合作自 2021 年起 為 Ubuntu 提供 Flutter 生態系統 的支援。在過去的一年中,Canonical 團隊使用 Flutter 從頭開始重建了 Ubuntu 安裝程式。
- LG 選擇 Flutter 來增強他們的智慧電視作業系統 webOS。Flutter 的效能、生產力和強大的生態系統讓 LG 可以快速開發和部署 webOS 系統應用程式,這些應用程式可以順暢運行。到 2025 年,Flutter 將為全球數千萬台 LG 電視提供系統應用程式。
這些成功案例鼓舞著我們,我們致力於讓 Flutter 變得更好。讓我們深入了解最新的產品更新,展示我們正在做些什麼來讓您能夠構建更加驚豔的應用程式、遊戲和體驗。
WebAssembly:在網頁上追逐原生效能
今天,我們宣布在我們的穩定版本中支援將 Flutter 網頁應用程式 編譯 為 WebAssembly (Wasm)。這是一種用於網頁瀏覽器的令人興奮的新指令格式,它提供了一種可移植的、平台中立的二進制程式碼格式。
我們對 Wasm 的支援是一項深入的、多年來的投資。首先,我們與 Chrome 團隊合作,在 WebAssembly 中為像 Dart 這樣的高級管理語言定義支援,這些語言通常使用垃圾回收。這導致了 WasmGC 提案,該提案現在已成為一個完整的標準,並在 Chrome(Chromium 119 及更高版本)和 Firefox(120 及更高版本)中提供了運行時實施,預計其他瀏覽器供應商將會效仿。接下來,我們添加了一個全新的 Dart 編譯器後端以生成 WasmGC 程式碼,而 Dart 和 Flutter 團隊合作執行編譯後的應用程式程式碼和 Flutter 渲染引擎作為 Wasm 模組,並提供有效的 Wasm 到 Wasm 的互操作性。
那麼最終結果是什麼?我們看到了效能的大幅提高,接近我們在運行機器程式碼的行動和桌面設備上的效能。在我們的內部基準測試中(在 M1 MacBook 上使用 Chrome),Wonderous 的畫面渲染時間在一般情況下提高了 2 倍,在 99% 的最差情況效能下提高了 3 倍。改進的渲染效能對於具有動畫和豐富轉場的需要大量資源的應用程式至關重要,在這些應用程式中,超出畫面預算(分配給渲染下一畫面的時間)會導致非常明顯的卡頓。Wasm 可能會消除這種卡頓,如下圖所示,Wonderous 應用程式使用傳統的 JS 編譯和 Wasm 編譯進行比較。
Flutter 網頁應用程式的 Wasm 編譯今天在穩定版本中可用。若要開始使用,請查看我們的 Dart Wasm 文檔 和 Flutter Wasm 文檔。
Dart macros:提高開發抽象級別
我們致力於提供一流的開發人員體驗。這意味著要解決 Dart 開發人員長期存在的痛點,例如序列化 JSON 資料。
這是一種普遍的模式,既簡單又乏味。目前的解決方案意味著要麼手動地完成編碼和解碼樣板,要麼在程式碼生成解決方案(例如 JsonSerializable 套件)的形式中添加額外的工具。
今天,我們宣布了一個用於 JSON 的更好選項的預覽版本:JsonCodable
macro。
macros 是創建更多程式碼的程式碼。它們就像程式碼生成,只是 macro 系統 內建於 Dart 中 並在您編輯和運行程式碼時 實時發生。這是一種整合的體驗,沒有延遲,完全支援我們現有的開發工作流程,例如熱重載,如這個螢幕截圖所示:
我們很興奮地看到 macros 為我們的開發人員解決各種問題。例如,資料類別,是 票數最高的 Dart 語言功能。除了特定應用之外,我們的最終目標是在 Dart 中擁有一個 macro 系統,允許使用者創建自己的 macros 並提高 Dart 程式設計的抽象級別。
設計和實作這樣一個強大的 macro 系統是一項巨大的任務,因此目前沒有設定穩定版本的時間 - 有關更多詳細資訊,請查看 Dart 3.4 文章。同時,今天就嘗試一下 JsonCodable
macro 的預覽版本。有關更多資訊,請查看 macros 文檔。
Flutter 遊戲開發的新資源
我們在遊戲方面的早期投資取得了令人鼓舞的成果,包括來自行業領導者(如 Etermax 和 Supercell)的成功案例,他們都在利用 Flutter 的功能和靈活性來有效地提供愉悅的使用者體驗並擴展其覆蓋範圍。
今天,我們很興奮地使用這些 Flutter 遊戲開發人員的新資源來延續這種勢頭:
- SoLoud 音頻引擎 現在可用:我們與 Flutter 社群 (@Marco Bavagnoli) 合作創建了一個免費且可移植的音頻引擎,它提供低延遲、高性能的音效,這對於許多遊戲來說至關重要。我們還創建了一個新的 聲音和音樂 codelab,它使用 SoLoud。
- 了解如何 生成包含相互交織的單詞的廣泛縱橫字謎網格,而不會損害使用者體驗,以及 使用類似 Box2D 的 2D 物理模擬在 Flutter 和 Flame 遊戲中製作遊戲機制,稱為 Forge2D。
- 一個關於 優化基於 Flutter 的網頁遊戲加載速度的全新指南:漫長的加載時間是基於網頁的遊戲的主要阻礙。請按照此指南(由 程林 撰寫)優化您的加載速度,以便玩家不會因為加載速度慢而放棄您的遊戲。
賦能可持續的遊戲開發
在 2024 年 1 月,在受到他們使用 Flutter 的 故事 的啟發下,我們與全球公民合作,挑戰我們的社群使用 Flutter 設計、構建和發佈可持續性遊戲。這些遊戲旨在激勵和賦能玩家,讓他們為環境採取一些微不足道但有意義的行動。今天,我們宣布 10 位獲獎者。
恭喜所有獲獎者!
更多探索
今天我們只有時間重點介紹這些內容,但還有許多其他我們沒有涉及的令人興奮的改進。以下是一些需要注意的其他事項:
- 您可以 預覽用於 Firebase Dart SDK 的 Vertex AI,在 Dart 或 Flutter 應用程式中使用 Gemini API 來實現 AI 驅動的功能。SDK 與 Firebase 應用程式檢查相結合,保護您的 API 調用,並保護您的後端基礎架構免受嚴重的威脅,例如計費欺詐、釣魚和應用程式偽造。有關詳細資訊,請查看我們的 AI 頁面。
- Impeller,我們的 下一代渲染引擎,現在在 Android 上功能齊全。
- Android 的預測性返回手勢 現在支援在 Flutter 應用程式中導航時,以及導航到其他應用程式或主畫面時。
- iOS 上的 平台視圖 已進行效能優化,將 CPU 使用率降低了高達 50%。
- Google Mobile Ads SDK 已擴展以支援更多廣告合作夥伴和調解選項。
- DevTools 有一個新的 深度鏈接驗證器,它可以幫助您識別和解決 Android 深度鏈接配置中的錯誤,以便您可以更輕鬆地將網頁體驗與 Flutter 應用程式連接起來。
dart fix
,我們的 API 遷移工具,現在可以直接從 IDE 中調用。- DevTools 現在支援時間線上進階篩選和 CPU 樣本。
前往 Flutter 技術文章 和 Dart 3.4 文章 獲取有關這些內容以及更多內容的更多詳細資訊。
與往常一樣,我們非常感謝您的持續支援、熱情、熱忱和回饋。沒有您,這個專案是不可能實現的,我們迫不及待地想看看您將如何繼續推動 Flutter 向前發展。
Flutter 完畢。我們希望很快再見到您!
在 Google I/O 2024 上推出 Flutter 3.22 和 Dart 3.4 最初發佈在 Flutter 上的 Medium,人們在那裡透過突出顯示和回應這個故事來繼續討論。