0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

了解 Flutter 3.16 功能更新

谷歌開發(fā)者 ? 來(lái)源:未知 ? 2023-12-16 15:55 ? 次閱讀

作者 / Kevin Chisholm 我們?cè)诩径?Flutter 穩(wěn)定版發(fā)布會(huì)上帶來(lái)了 Flutter 3.16,此版本包含諸多更新:Material 3 成為新的默認(rèn)主題、為 Android 帶來(lái) Impeller 的預(yù)覽版、允許添加適用于 DevTools 的擴(kuò)展程序等等,以及同步推出 Flutter 休閑游戲工具包重大更新!
  • Flutter 休閑游戲工具包重大更新https://medium.com/flutter/building-your-next-casual-game-with-flutter-716ef457e440
自上次發(fā)布以來(lái),僅僅三個(gè)月,我們便收到了 145 名社區(qū)成員合并提出的 928 個(gè)拉取請(qǐng)求 (pull request),其中有 40 名社區(qū)成員在 Flutter 上首次提交了他們的編寫! 歡迎您繼續(xù)閱讀本篇文章,了解 Flutter 社區(qū)為這個(gè)最新版本帶來(lái)的所有新功能和改進(jìn)!

框架

Material 3 成為新的默認(rèn)設(shè)計(jì)語(yǔ)言

Material 庫(kù)已更新至 3.10 版本 (2023 年 5 月),以匹配最新的 Material Design 規(guī)范。更改包括新的組件、組件主題以及更新的組件視覺效果。在 3.16 版本之前,這些更改在 useMaterial3 主題標(biāo)志旁顯示為 "選擇加入";自此版本起,useMaterial3 默認(rèn)為 true。(#130764)
  • #130764https://github.com/flutter/flutter/pull/130764
雖然您仍然可以通過(guò)在 MaterialApp 主題中設(shè)定useMaterial3: false 從而選擇退出 M3 版本的 Material 庫(kù),但 Material 2 最終還是會(huì)被棄用和刪除。此外,一些 widgets 不僅需要更新,還需要全新的實(shí)現(xiàn)方式。因此,當(dāng)您的界面以 Material 3 形式運(yùn)行時(shí),可能看起來(lái)有點(diǎn)奇怪。要解決此問(wèn)題,您可以手動(dòng)遷移到新的 widgets,例如 NavigationBar。您可以在 GitHub 上的 Material 3 umbrella issue 查看更多詳情。
  • NavigationBarhttps://api.flutter.dev/flutter/material/NavigationBar-class.html
  • Material 3 umbrella issuehttps://github.com/flutter/flutter/issues/91605
通過(guò)演示應(yīng)用,您可以試用所有組件。演示版支持切換 useMaterial3,以便您針對(duì)更改進(jìn)行比較。
  • 演示應(yīng)用https://flutter.github.io/samples/material_3.html
Material 3 組件的外觀主要由 [ThemeData.colorScheme][ThemeData.textTheme] 的值決定。ColorScheme.fromSeed() 是 Material 3 配色方案的首選方式,可以生成既美觀又符合無(wú)障礙對(duì)比度要求的深色和淺色方案。您還可以使用 ColorScheme.fromImageProvider,以根據(jù)圖像中的主色調(diào)生成配色方案。如果您想進(jìn)一步自定義 Material 3 組件的外觀,可以將組件主題添加到 ThemeData,例如 ThemeData.segmentedButtonThemeThemeData.snackBarTheme。非空組件主題屬性會(huì)覆蓋組件的 API 文檔中指定的默認(rèn)值。wKgaomV9WQyATU2uACzv6LbiiUI986.gif ?
  • ThemeData.segmentedButtonThemehttps://api.flutter.dev/flutter/material/SegmentedButtonThemeData-class.html
  • ThemeData.snackBarThemehttps://api.flutter.dev/flutter/material/SnackBarThemeData-class.html

支持 Material 3 動(dòng)效

對(duì) Material 3 動(dòng)效的改進(jìn)包括新增 EasingDurations 類。Material 2 曲線被重命名后包含了 "legacy" 提示,最終將被棄用和刪除。(#129942)
  • #129942https://github.com/flutter/flutter/pull/129942

在編輯菜單中添加其他選項(xiàng)

在原生 iOS 系統(tǒng)上,用戶現(xiàn)在可以選擇文本并啟動(dòng)提供多種標(biāo)準(zhǔn)服務(wù)的共享菜單。在此版本中,我們添加了查找、搜索和共享選項(xiàng)。wKgaomV9WQ2AEKkmAAN-8RTdjZ8662.gif ? ? ?

用于指定全局文本縮放系數(shù)的 TextScaler

為了支持 Android 14 中為視障人士提供幫助的非線性字體縮放功能,我們使用新的 TextScaler 類替代 Text.textScaleFactor 屬性。(#128522)
  • 非線性字體縮放功能https://blog.google/products/android/android-14/#:~:text=Also%2C%20you%20can%20improve%20readability,rate%20than%20smaller%20font%20size.
  • TextScalerhttps://api.flutter.dev/flutter/painting/TextScaler-class.html
  • #128522https://github.com/flutter/flutter/pull/128522

SelectionArea 更新

Flutter 的 SelectionArea 經(jīng)過(guò)更新,可支持與使用鼠標(biāo)單擊或雙擊以及觸屏設(shè)備上長(zhǎng)按相關(guān)的原生手勢(shì)。您可以在默認(rèn)情況下通過(guò) SelectionAreaSelectableRegion 使用這些新手勢(shì):

  • 單擊:在點(diǎn)擊位置設(shè)置折疊的選項(xiàng)。
  • 雙擊:選擇點(diǎn)擊位置的字詞。
  • 雙擊 + 拖動(dòng):擴(kuò)展所選詞塊。
wKgaomV9WQ2AbhktACmFeREKz04826.gif
  • 長(zhǎng)按 + 拖動(dòng):擴(kuò)展所選詞塊。
wKgaomV9WQ6AQFFRAEtzFFkk5oU734.gif ? ? ?

可在焦點(diǎn) widget 上操作的菜單項(xiàng)

此版本支持在使用菜單項(xiàng)時(shí)清除焦點(diǎn)更改:FocusManagerapplyFocusChangesIfNeeded 函數(shù)現(xiàn)在可用于恢復(fù)菜單焦點(diǎn)——當(dāng)用戶單擊菜單項(xiàng)時(shí),焦點(diǎn)會(huì)返回至菜單打開之前焦點(diǎn)所在的項(xiàng)目。(#130536)
  • #130536https://github.com/flutter/flutter/pull/130536

iOS、macOS 中菜單項(xiàng)快捷方式的

自動(dòng)重新排序

Mac 平臺(tái)上的 Flutter 應(yīng)用現(xiàn)在會(huì)按照《Apple 人機(jī)界面指南》對(duì)菜單中的快捷方式修飾符進(jìn)行排序。(#129309)wKgaomV9WQ6ADAcrAAAOeb4IcOE223.png△排序前 wKgaomV9WQ6AK5soAAAOgA7gu1s525.png△排序后
  • #129309https://github.com/flutter/flutter/pull/129309

MatrixTransition 動(dòng)畫

新的 MatrixTransition widget 可用于變換轉(zhuǎn)場(chǎng)動(dòng)畫。根據(jù)當(dāng)前動(dòng)畫值,您可以提供應(yīng)用于子 widget 的矩陣變換,也可以查看 DartPad 中示例的實(shí)現(xiàn)效果。(#131084)
  • DartPad 中示例https://dartpad.dev/?channel=beta&id=c82be58209035722f2cc7d78da855329
  • #131084https://github.com/flutter/flutter/pull/131084

PaintPattern 已添加到 flutter_test

flutter_test package 中,新的 PaintPattern 類允許您驗(yàn)證 CustomPainterDecoration(在單元測(cè)試中使用) 等 widget 對(duì)畫布進(jìn)行的繪制調(diào)用。 以前,驗(yàn)證顏色和矩形是否繪制正確需要使用 golden 文件,但您現(xiàn)在可以使用 PaintPattern。以下是驗(yàn)證 MyWidget 是否在畫布上繪制了圓圈的示例:
expect(
  find.byType(MyWidget),
  paints
    ..circle(
      x: 10,
      y: 10,
      radius: 20,
      color: const Color(0xFFF44336),
    ),
);
// Multiple paint calls can even be chained together.
expect(
  find.byType(MyWidget),
  paints
    ..circle(
      x: 10,
      y: 10,
      radius: 20,
      color: const Color(0xFFF44336),
    ),
    ..image(
      image: MyImage,
      x: 20,
      y: 20,
    ),
);
此 API 以前深藏于框架測(cè)試文件,我們注意到一些開發(fā)者發(fā)現(xiàn)它非常有用并將其復(fù)制到了自己的項(xiàng)目中。如果該 API 也適用于您的項(xiàng)目,您可以在升級(jí)到 Flutter 3.16 后從項(xiàng)目中刪除該副本。

滾動(dòng)更新

在 Flutter 3.13 首次發(fā)布二維滾動(dòng)基礎(chǔ)后,此次 3.16 版本帶來(lái)了更多功能和優(yōu)化,2D 基礎(chǔ)現(xiàn)在支持 KeepAlive widget,以及默認(rèn)的焦點(diǎn)遍歷和隱式滾動(dòng)。在此基礎(chǔ)之上構(gòu)建的 2D 滾動(dòng) widget 將自動(dòng)采用此支持。有關(guān)在 2D 基礎(chǔ)上構(gòu)建的綜合指南,您可以觀看最新一集的《Flutter Build Show》
  • 最新一集的《Flutter Build Show》https://www.youtube.com/watch?v=ppEdTo-VGcg
3.13 版本發(fā)布后不久,two_dimensional_scrollables package 也隨之發(fā)布。此 package 由 Flutter 團(tuán)隊(duì)維護(hù),包含首個(gè)基于框架基礎(chǔ)構(gòu)建的 2D 滾動(dòng) widget — TableView。自首次發(fā)布以來(lái),我們添加了更多裝飾和樣式支持,并修復(fù)了其他問(wèn)題。
  • two_dimensional_scrollableshttps://pub.flutter-io.cn/packages/two_dimensional_scrollables

引擎

Impeller

Android

在此版本中,我們很高興地與您分享,Impeller 已在 Android 上準(zhǔn)備就緒,可用于在穩(wěn)定渠道上收集預(yù)覽版反饋。自今年早些時(shí)候,團(tuán)隊(duì)一直在努力為 Impeller 開發(fā) Vulkan 后端,此次預(yù)覽版包括收集 Impeller 在支持 Vulkan 的設(shè)備上表現(xiàn)的相關(guān)反饋。wKgaomV9WQ-Ab0zYAAbuO7oGvh0765.png△這張圖表顯示了在過(guò)去一年里,在對(duì) Impeller 的 Vulkan 后端上運(yùn)行的 Flutter Gallery 進(jìn)行的轉(zhuǎn)換性能基準(zhǔn)測(cè)試中,99% 幀時(shí)間、90% 幀時(shí)間和平均幀光柵化時(shí)間都有所改善,由于卡頓更少、穩(wěn)態(tài)幀率更高,用戶可以直觀地看到這些改善。在此測(cè)試結(jié)束時(shí),由于我們從 Samsung S10 設(shè)備改用 Pixel 7 Pro 設(shè)備,導(dǎo)致數(shù)據(jù)大幅下降。盡管如此,趨勢(shì)和整體結(jié)果仍然鼓舞人心。 在不支持 Vulkan 的設(shè)備上,預(yù)計(jì) Impeller 表現(xiàn)不佳。我們計(jì)劃在未來(lái)幾個(gè)月內(nèi)為 Impeller 的 OpenGL 后端提供完備功能,以及在未來(lái)的穩(wěn)定版本中征集有關(guān) Impeller 在這些設(shè)備上的表現(xiàn)的反饋意見。 要在支持 Vulkan 的 Android 設(shè)備上試用 Impeller,F(xiàn)lutter 開發(fā)者可以將 — enable-impeller 標(biāo)志傳遞給 flutter run,或?qū)⒁韵略O(shè)置添加到 標(biāo)簽下的項(xiàng)目 AndroidManifest.xml 文件中:

  android:name="io.flutter.embedding.android.EnableImpeller"
  android:value="true" />
為了確定設(shè)備是否支持 Vulkan,您需要對(duì) Impeller 進(jìn)行 Impeller repo docs 中討論的測(cè)試。一般來(lái)說(shuō),在運(yùn)行 Android API 級(jí)別 29 或更高版本的 64 位操作系統(tǒng)的設(shè)備上,Impeller 使用的是 Vulkan 后端。用戶還可以按照檢查是否支持 Vulkan 中的建議從而確定設(shè)備是否支持 Vulkan。
  • Impeller repo docshttps://github.com/flutter/engine/blob/main/impeller/docs/android.md#rendering-backend-selection
  • 檢查是否支持 Vulkanhttps://docs.vulkan.org/guide/latest/checking_for_support.html#_android

雖然迄今為止,我們對(duì)在 Impeller 的 Vulkan 后端上取得的進(jìn)展比較滿意,但預(yù)覽階段仍有一些已知問(wèn)題:

  • 由于平臺(tái)視圖尚未實(shí)現(xiàn),因此包含平臺(tái)視圖的框架效果不佳。
  • 自定義著色器尚未實(shí)現(xiàn)。
  • 有關(guān)已知錯(cuò)誤缺失功能的完整列表,您可以參閱 GitHub 的 Impeller 項(xiàng)目板中的最新信息。我們已在 3.17 beta 版中修復(fù)了一些問(wèn)題,您也可以試用新版本。
  • 已知錯(cuò)誤https://github.com/orgs/flutter/projects/21/views/1?filterQuery=-status:%22%E2%9C%85+Done%22+status:%22%F0%9F%90%9E+Bugs%22
  • 缺失功能https://github.com/orgs/flutter/projects/21/views/11
  • 項(xiàng)目板https://github.com/orgs/flutter/projects/21
我們對(duì)嘗試在支持 Vulkan 的 Android 設(shè)備上取得的 Impeller 保真度和性能進(jìn)展感到滿意。然而,與 iOS 相比,Android 硬件生態(tài)系統(tǒng)更加多樣化,因此我們預(yù)計(jì) Android 的預(yù)覽版試用期比 iOS 更長(zhǎng),然后才能將其作為穩(wěn)定渠道上的默認(rèn)后端?;谏鲜鲈?,關(guān)于 Impeller 的最實(shí)用反饋應(yīng)包括發(fā)生問(wèn)題的具體設(shè)備和 Android 版本的詳細(xì)信息。 此外,Impeller 的 Vulkan 后端在 "調(diào)試" 版本中啟用了超出 Skia 使用范圍的額外調(diào)試功能,這些功能會(huì)產(chǎn)生額外的運(yùn)行時(shí)開銷。因此,有關(guān) Impeller 性能的反饋務(wù)必來(lái)自配置文件或發(fā)布版本,并且應(yīng)包括來(lái)自 DevTools 的時(shí)間軸以及與同一設(shè)備上的 Skia 后端的比較。我們非常感謝每一個(gè)包含可復(fù)現(xiàn)的小型測(cè)試用例的反饋。

Impeller 性能、保真度和穩(wěn)定性

除了關(guān)注 Vulkan 后端,自今年年初以來(lái),團(tuán)隊(duì)還對(duì) Impeller 中的文本性能進(jìn)行了許多改進(jìn),這對(duì) Android 和 iOS 都有好處。特別是我們改進(jìn)了 Impeller 字形圖集的管理以及在引擎的界面和光柵線程中劃分文本工作負(fù)載的方式。因此,用戶會(huì)注意到,即使處理繁重的文本工作負(fù)載,發(fā)生卡頓的情況也會(huì)減少。wKgaomV9WQ-AVYiXAAc7q7CDUyg364.png△這張圖表顯示了在使用 Impeller 的 iPhone 11 上進(jìn)行的其中一項(xiàng)大量文本基準(zhǔn)測(cè)試中,99% 幀時(shí)間、90% 幀時(shí)間和平均幀光柵化時(shí)間均有減少 (以毫秒為單位)。特別是,90% 幀時(shí)間和平均幀光柵化時(shí)間幾乎減半。 團(tuán)隊(duì)還一直在努力改進(jìn) Android 和 iOS 的保真度和穩(wěn)定性,特別是用戶報(bào)告的內(nèi)容。在此穩(wěn)定版本發(fā)布的三個(gè)月中,團(tuán)隊(duì)已經(jīng)針對(duì) Flutter/引擎 repo 提交了 209 個(gè)與 Impeller 相關(guān)的內(nèi)容,解決了 217 個(gè)問(wèn)題,其中包括 42 個(gè)有關(guān)保真度、穩(wěn)定性或性能問(wèn)題的用戶報(bào)告。

引擎性能

為了在采用異構(gòu)多處理的移動(dòng)設(shè)備上提供更好的性能支持,我們修改了引擎,以便注重性能的線程 (例如,界面和光柵線程) 可適應(yīng)設(shè)備更強(qiáng)大的內(nèi)核。我們觀察到,這一變化對(duì)一系列基準(zhǔn)和設(shè)備產(chǎn)生了積極影響。在某些情況下,這種改善十分顯著,99% 幀時(shí)間或 90% 幀時(shí)間至少減半。我們預(yù)計(jì),經(jīng)過(guò)此次更改后,無(wú)論在 Android 上使用 Skia 后端還是 Impeller 后端,用戶都會(huì)注意到卡頓情況有所減少。在 iOS 設(shè)備上,因?yàn)楦鼜?qiáng)大的內(nèi)核和更弱的內(nèi)核之間的差異較小,所以效果并不太明顯。wKgaomV9WQ-Af_pSAAiaC2AnLP0394.png△這張圖表顯示了,我們幾乎所有 Android 基準(zhǔn)和設(shè)備的最差幀時(shí)間、99% 幀時(shí)間、90% 幀時(shí)間以及平均幀構(gòu)建時(shí)間和幀光柵化時(shí)間都有所改善。
  • 修改了引擎https://github.com/flutter/engine/pull/45673

API 和保真度改善

Impeller 性能疊加

在以前的版本中,F(xiàn)lutter 的性能疊加功能未在 Impeller 中顯示。此版本修復(fù)了該問(wèn)題,性能疊加在 Impeller 啟用后將會(huì)正確顯示。
  • 性能疊加https://docs.flutter.dev/perf/ui-performance#the-performance-overlay
  • 性能疊加將會(huì)正確顯示https://github.com/flutter/engine/pull/45259
抖動(dòng)現(xiàn)在會(huì)正確顯示

在此版本中,Paint.enableDithering 屬性被設(shè)置為 true,并且根據(jù) Flutter 的棄用策略已被棄用。抖動(dòng)現(xiàn)在默認(rèn)啟用 (不再支持開發(fā)者可配置的抖動(dòng)),您將不會(huì)再遇到漸變問(wèn)題。您可以參閱 docs.flutter.dev 中的重大變更頁(yè)面了解有關(guān)此更改的完整說(shuō)明和遷移指南。wKgaomV9WQ-AGoEJAACEnC9BDq0443.png△之前 wKgaomV9WRCAXs5aAADz2qzt-Bc428.png△之后
  • Flutter 的棄用策略https://docs.flutter.dev/release/compatibility-policy#deprecation-policy
  • 重大變更頁(yè)面https://docs.flutter.dev/release/breaking-changes/paint-enableDithering

游戲

Flutter 游戲工具包

過(guò)去幾年,休閑游戲開發(fā)社區(qū)不斷發(fā)展壯大。從簡(jiǎn)單而有趣的解謎游戲到更復(fù)雜的街機(jī)游戲,數(shù)以萬(wàn)計(jì)使用 Flutter 開發(fā)的游戲得以發(fā)布。深受喜愛的游戲包括 Etermax 的 Trivia Crack、Lotum 的 4 Pics 1 Word(猜詞游戲)、Dong Digital 的 Brick Mania(街機(jī)游戲)、Onrizon 的 StopotS(分類游戲)、我們?yōu)?I/O 大會(huì)開發(fā)的復(fù)古彈球游戲以及在社交和菜單屏幕中使用 Flutter 的 PUBG 手游等。wKgaomV9WRGAXukGAHnAZ4idKRg824.gif ?
  • Trivia Crackhttps://triviacrack.com/
  • 4 Pics 1 Wordhttps://flutter.cn/showcase/lotum
  • Brick Maniahttps://play.google.com/store/apps/details?id=net.countrymania.brick&hl=en
  • StopotShttps://play.google.com/store/apps/details?id=com.gartic.StopotS&hl=en
  • retro pinball gamehttps://pinball.flutter.dev/
  • PUBGhttps://flutter.dev/showcase/pubg-mobile
為了幫助游戲開發(fā)者提高工作效率,我們對(duì) Flutter 的休閑游戲工具包進(jìn)行了重大更新。此次更新包括提供一系列新資源,可幫助開發(fā)者利用更多特定類型的模板把游戲從概念走向發(fā)布,例如紙牌游戲、無(wú)盡跑酷游戲以及 Google Play 游戲服務(wù)、應(yīng)用內(nèi)購(gòu)買、廣告、成就、crashlytics 和多人游戲支持等服務(wù)集成。
  • 休閑游戲工具包http://flutter.cn

Web

Chrome DevTools 中的

Flutter 時(shí)間軸事件

Flutter 時(shí)間軸事件現(xiàn)在顯示在 Chrome DevTools 的性能面板中。(#130132)
  • #130132

    https://github.com/flutter/flutter/issues/130132

您可以查看 Web 應(yīng)用的調(diào)試性能了解更多詳細(xì)信息。

wKgaomV9WRGAZM5CAAN5n8RgUeg669.png

  • Web 應(yīng)用的調(diào)試性能

    https://docs.flutter.dev/perf/web-performance

Android

鼠標(biāo)滾輪支持

優(yōu)化 Wonderous 以符合 Android 的大屏指南要求時(shí),我們發(fā)現(xiàn)了一個(gè)問(wèn)題,鼠標(biāo)滾輪在平板電腦或可折疊設(shè)備上表現(xiàn)不佳。這導(dǎo)致出現(xiàn)了一個(gè)普遍現(xiàn)象,用戶必須大幅移動(dòng)滾輪才能讓屏幕響應(yīng)。
  • 優(yōu)化 Wonderous 以滿足 Android 的大屏指南要求

    https://medium.com/flutter/developing-flutter-apps-for-large-screens-53b7b0e17f10

  • 普遍現(xiàn)象

    https://github.com/flutter/flutter/issues/82973

通過(guò)此版本更新,使用鼠標(biāo)在 Flutter 視圖上的滾動(dòng)速度與在 Android 設(shè)備上的滾動(dòng)速度得以匹配。(44724)
  • 44724

    https://github.com/flutter/engine/pull/44724

wKgaomV9WROAAi0rAH4-RXJKSSM390.gif之前wKgaomV9WRSAXQ76AEI6UB2-_CI925.gif之后

預(yù)測(cè)性返回導(dǎo)航

Android 14 版本包含預(yù)測(cè)性返回手勢(shì)功能,允許您在設(shè)備上使用返回手勢(shì) "查看" 當(dāng)前屏幕后面的主屏幕。此更新也為 Flutter 帶來(lái)了預(yù)測(cè)性返回手勢(shì)!您可以查看遷移指南了解詳情。

wKgaomV9WRSAMUGWAA37mUkGEr0945.gif

  • 遷移指南

    https://docs.flutter.dev/release/breaking-changes/android-predictive-back#migration-guide

iOS

應(yīng)用擴(kuò)展

Flutter 現(xiàn)在可用于定位某些 iOS 應(yīng)用擴(kuò)展。這意味著可以使用 Flutter widget 為某些類型的 iOS 應(yīng)用擴(kuò)展繪制界面。這并不適用于所有類型的應(yīng)用擴(kuò)展,因?yàn)?API (例如,主屏幕 widget) 或內(nèi)存可能存在限制。

wKgaomV9WRSAfEgbAANCsbMi_mI622.png

  • iOS 應(yīng)用擴(kuò)展

    https://developer.apple.com/app-extensions/

您可以訪問(wèn) docs.flutter.dev 中的添加 iOS 應(yīng)用擴(kuò)展了解詳情并查看有關(guān)如何定位 "共享" 擴(kuò)展的示例。
  • 添加 iOS 應(yīng)用擴(kuò)展

    https://docs.flutter.dev/platform-integration/ios/app-extensions

Package 生態(tài)系統(tǒng)

新的 Flutter Favorite 內(nèi)容

我們已重新啟動(dòng) Flutter Favorite 項(xiàng)目!在此周期中,F(xiàn)lutter 生態(tài)系統(tǒng)委員會(huì)將 flame、flutter_animateflutter_rust_bridge、riverpod、video_playermacos_uifpdart package 指定為新的 Flutter Favorite。
  • Flutter Favorite

    https://docs.flutter.dev/packages-and-plugins/favorites

  • flame

    https://pub.flutter-io.cn/packages/flame

  • flutter_animate

    https://pub.flutter-io.cn/packages/flutter_animate

  • flutter_rust_bridge

    https://pub.flutter-io.cn/packages/flutter_rust_bridge

  • riverpod

    https://pub.flutter-io.cn/packages/riverpod

  • video_player

    https://pub.flutter-io.cn/packages/video_player

  • macos_ui

    https://pub.flutter-io.cn/packages/macos_ui

  • fpdart

    https://pub.flutter-io.cn/packages/fpdart

敬請(qǐng)您持續(xù)關(guān)注更新的 Flutter Favorite 內(nèi)容。您可以向委員會(huì)發(fā)送電子郵件消息 (電子郵件地址: flutter-committee@googlegroups.com),來(lái)提名 package 或插件成為潛在的未來(lái) Flutter Favorite,還可以提醒委員會(huì)注意任何其他問(wèn)題。 wKgaomV9WRSAXh-pAAAPrpagEhg431.png ? ? ?

首屆 package 生態(tài)系統(tǒng)網(wǎng)絡(luò)峰會(huì)

8 月,我們舉辦了首屆 package 生態(tài)系統(tǒng)網(wǎng)絡(luò)峰會(huì),超過(guò) 50 名非 Google 員工和 Google 員工貢獻(xiàn)者通過(guò) pub.dev 參與了本次峰會(huì)。我們的目標(biāo)是將貢獻(xiàn)者們聚集在一起,開展非會(huì)議式的討論,讓大家交流計(jì)劃、傳授經(jīng)驗(yàn)、互相學(xué)習(xí)并在社區(qū)中分享想法。會(huì)后調(diào)查顯示,大家對(duì)會(huì)議的滿意度為 100%。我們計(jì)劃在未來(lái)與社區(qū)合作,舉辦類似的 package 生態(tài)系統(tǒng) (面對(duì)面和網(wǎng)絡(luò)) 活動(dòng)。
  • pub.dev

    https://pub.dev/

基于 Cloud 的 Google 地圖樣式

利用 Google Maps Platform,您可以在 Google Cloud Console 的 "地圖樣式" 頁(yè)面中自定義地圖樣式,而無(wú)需在每次更改樣式時(shí)更新應(yīng)用代碼,即可享受自定義體驗(yàn)。 wKgaomV9WRWADD3bAAgmJuE75Dw476.png ?如果您想要在 Flutter 中使用此功能,只需使用控制臺(tái)中設(shè)置的地圖 ID 即可引用地圖:
GoogleMap(
       onMapCreated: _onMapCreated,
       initialCameraPosition: const CameraPosition(
         target: _kMapCenter,
         zoom: 7.0,
       ),
       key: _key,
       cloudMapId: _mapId
);

CameraX 改進(jìn)

在 3.10 穩(wěn)定版中,我們對(duì) Flutter 相機(jī)插件添加了初步的 CameraX 支持。CameraX 是一款 Jetpack 庫(kù),可簡(jiǎn)化向 Android 應(yīng)用添加豐富相機(jī)功能的流程。
  • CameraX

    https://developer.android.google.cn/training/camerax

在此版本中,我們添加了使用相機(jī)的應(yīng)用所需的大部分功能。CameraX 解決了 Camera2 插件實(shí)現(xiàn)方式中存在的許多問(wèn)題。 我們建議您使用 CameraX 插件。如果您選擇啟用,可以將以下行添加到 pubspec.yaml 文件中。
Dependencies:
camera: ^0.10.4 # Or try the latest camera version
camera_android_camerax:^0.5.0
我們計(jì)劃在未來(lái)版本中將 CameraX 作為默認(rèn)實(shí)現(xiàn)方式,期待您的反饋。

macOS 視頻播放器

我們?yōu)?span style="color:rgb(66,133,244);">視頻播放器插件添加了 macOS 支持,允許開發(fā)者在 widget 表面播放視頻。
  • 視頻播放器插件

    https://pub.flutter-io.cn/packages/video_player

您可以在 pub.dev 中搜索視頻播放器插件了解詳情。
  • pub.dev

    https://pub.dev/

  • 視頻播放器插件

    https://pub.flutter-io.cn/packages/video_player

DevTools

DevTools 擴(kuò)展

新的 DevTools 擴(kuò)展框架支持:

  • package 作者可以直接在 DevTools 中為 package 構(gòu)建自定義工具。
  • package 作者可以利用 DevTools 中的現(xiàn)有框架和實(shí)用程序編寫功能強(qiáng)大的工具。
  • 正在使用 DevTools 調(diào)試應(yīng)用的 Dart 和 Flutter 開發(fā)者可以訪問(wèn)特定于其用例的工具 (取決于其應(yīng)用的依賴項(xiàng)以及哪些依賴項(xiàng)提供DevTools 擴(kuò)展)。
  • DevTools 擴(kuò)展框架

    https://pub.flutter-io.cn/packages/devtools_extensions

感謝 Provider、DriftPatrol 的 package 作者,這個(gè)生態(tài)系統(tǒng)已經(jīng)在構(gòu)建中,您可以立即使用這些 package 的 DevTools 拓展!
  • Provider

    https://pub.flutter-io.cn/packages/provider

  • Drift

    https://pub.flutter-io.cn/packages/drift

  • Patrol

    https://pub.flutter-io.cn/packages/patrol

wKgaomV9WRWAa3unAAY8U3A5Ssw647.png

Provider

wKgaomV9WRWAHqQfAArofk7htpg462.png

Patrol

wKgaomV9WRaAfTQIAAMTN6SoAsY008.png

Drift

您可以查看 Kenzie Davisson 撰寫的 Dart 和 FlutterDevTools 擴(kuò)展公告,深入了解 DevTools 擴(kuò)展。
  • Kenzie Davisson

    https://medium.com/@kenzieschmoll

  • Dart 和 Flutter DevTools 擴(kuò)展公告

    https://medium.com/flutter/dart-flutter-devtools-extensions-c8bc1aaf8e5f

DevTools 更新

此版本的 DevTools 有以下亮點(diǎn):
  • 添加了對(duì) DevTools 擴(kuò)展的支持
  • 添加了新的 "主" 屏幕,顯示已連接應(yīng)用的摘要
wKgaomV9WRaAC3xDAADMwT__z_0858.png ?

其他改進(jìn)包括:

  • 整體性能
  • 熱重啟的穩(wěn)健性
  • 文本選擇及復(fù)制行為
  • 網(wǎng)絡(luò)性能分析器響應(yīng)查看器的優(yōu)化
您可以查看 DevTools2.26.1、2.27.02.28.1 的版本說(shuō)明了解詳情。

  • 2.26.1

    https://docs.flutter.dev/tools/devtools/release-notes/release-notes-2.26.1

  • 2.27.0

    https://docs.flutter.dev/tools/devtools/release-notes/release-notes-2.27.0

  • 2.28.1

    https://docs.flutter.dev/tools/devtools/release-notes/release-notes-2.28.1

VS Code 界面可檢測(cè)性

感謝 Flutter 社區(qū)成員 DanTup 的出色工作, Flutter VS Code 擴(kuò)展現(xiàn)已配備 Flutter 側(cè)邊欄,您可以輕松:

  • 打開 Flutter DevTools 屏幕
  • 查看處于活躍狀態(tài)的調(diào)試會(huì)話
  • 查看可用設(shè)備
  • 創(chuàng)建新項(xiàng)目
  • 熱重載和重啟
  • 運(yùn)行 Flutter Doctor -v
…… wKgaomV9WRaAVSqUAAIotp2TaRQ641.jpg ?
  • DanTup

    https://github.com/DanTup

棄用和重大變更

此版本中的重大變更包括 v 3.13 版本后過(guò)期并被棄用的 API。如果您想查看所有受影響的 API 以及其他背景信息和遷移指南,您可以參閱此版本的棄用指南。其中的許多 API 都受 Flutter Fix 支持,包括 IDE 中的快速修復(fù),您也可以使用 dart fix 命令評(píng)估和應(yīng)用批量修復(fù)。
  • 此版本的棄用指南

    https://docs.flutter.dev/release/breaking-changes/3-13-deprecations

  • Flutter Fix

    https://docs.flutter.dev/development/tools/flutter-fix

非常感謝社區(qū)一如既往地提供測(cè)試,幫助我們推進(jìn)了以上重大變更。如需了解詳情,您可以查看 Flutter 的重大變更政策。
  • 提供測(cè)試

    https://github.com/flutter/tests/blob/master/README.md

  • Flutter 的重大變更政策

    https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes

在下個(gè)版本中,我們計(jì)劃將棄用政策的適用范圍擴(kuò)展到除已支持的 package (flutterflutter_test) 之外的 flutter_driver package。

即刻體驗(yàn)

我們特意在本文的開篇部分列出了貢獻(xiàn)者的數(shù)量。大家 (卓越社區(qū)) 的共同努力,讓 Flutter 在當(dāng)下成為輕松易用且能提高工作效率的工具包。再次謝謝大家。 有關(guān)此版本中包含的 PR 完整列表,您可以查看版本說(shuō)明和更新日志。
  • 版本說(shuō)明和更新日志

    https://docs.flutter.dev/release/release-notes

Flutter 3.16 目前已發(fā)布至穩(wěn)定渠道,包括 Dart 3.2,您只需單擊 flutter upgrade 即可開始使用這些最新的更新。
  • Dart 3.2

    https://medium.com/dartlang/dart-3-2-c8de8fe1b91f

  • flutter upgrade

    https://docs.flutter.dev/release/upgrade

期待下次更新再見!
wKgaomV9WRaAfTz9AAAafJIrrMk861.gif?點(diǎn)擊屏末||即刻訪問(wèn) Flutter 開發(fā)者社區(qū)中文資源

wKgaomV9WRaAQ4FiAAATN9B0Fw0435.png

wKgaomV9WReACMIkAAMyGF3oQT4330.png

wKgaomV9WReAIhxaAAAptPJQ2wE748.png


原文標(biāo)題:了解 Flutter 3.16 功能更新

文章出處:【微信公眾號(hào):谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 谷歌
    +關(guān)注

    關(guān)注

    27

    文章

    6171

    瀏覽量

    105504

原文標(biāo)題:了解 Flutter 3.16 功能更新

文章出處:【微信號(hào):Google_Developers,微信公眾號(hào):谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙Flutter實(shí)戰(zhàn):14-現(xiàn)有Flutter 項(xiàng)目支持鴻蒙 II

    ;flutter_inappwebview\" 每次修改完 pubspec.yaml,使用 fvm flutter pub get 更新下依賴安裝。 運(yùn)行調(diào)試 用 Deveco 打開apps
    發(fā)表于 12-26 14:59

    鴻蒙Flutter實(shí)戰(zhàn):12-使用模擬器開發(fā)調(diào)試

    前提 開發(fā)電腦需為M系列芯片 (ARM架構(gòu)) 的 Mac 電腦 目前 Flutter 鴻蒙開發(fā),無(wú)法使用 X86 架構(gòu)的模擬器,只能使用 ARM 架構(gòu)的模擬器** 創(chuàng)建項(xiàng)目 等開發(fā)環(huán)境搭建
    發(fā)表于 11-10 13:13

    鴻蒙Flutter實(shí)戰(zhàn):11-使用 Flutter SDK 3.22.0

    # 使用 Flutter SDK 3.22.0 ## SDK 安裝 參考[鴻蒙Flutter實(shí)戰(zhàn):01-搭建開發(fā)環(huán)境]文章的說(shuō)明,首先安裝 Flutter SDK 3.22.0。 目前鴻蒙化
    發(fā)表于 11-01 15:03

    鴻蒙Flutter實(shí)戰(zhàn):10-常見問(wèn)題集合

    # 鴻蒙Flutter實(shí)戰(zhàn):10-常見問(wèn)題集合 ## 1. 學(xué)習(xí)路徑應(yīng)該是怎樣的,需要掌握哪些技術(shù)才具備鴻蒙 Flutter 開發(fā)能力 1.1 學(xué)習(xí)和掌握 Flutter 開發(fā)技術(shù),這塊需要
    發(fā)表于 10-23 17:05

    鴻蒙Flutter實(shí)戰(zhàn):09-現(xiàn)有Flutter項(xiàng)目支持鴻蒙

    # 鴻蒙Flutter實(shí)戰(zhàn):現(xiàn)有Flutter項(xiàng)目支持鴻蒙 ## 背景 原來(lái)使用Flutter開發(fā)的項(xiàng)目,需要適配鴻蒙。 ## 環(huán)境搭建 見文章[鴻蒙Flutter適配指南],
    發(fā)表于 10-23 16:36

    鴻蒙Flutter實(shí)戰(zhàn):08-如何調(diào)試代碼

    # 鴻蒙Flutter實(shí)戰(zhàn):如何調(diào)試代碼 ## 1.環(huán)境搭建 參考文章[鴻蒙Flutter實(shí)戰(zhàn):01-搭建開發(fā)環(huán)境](https://gitee.com/zacks
    發(fā)表于 10-23 16:29

    鴻蒙Flutter實(shí)戰(zhàn):07混合開發(fā)

    項(xiàng)目處,引入Flutter模塊。 其優(yōu)點(diǎn)是方便維護(hù)和更新Flutter代碼,也可以使用熱重載。缺點(diǎn)是需要搭建Flutter開發(fā)環(huán)境,開發(fā)人員需要掌握
    發(fā)表于 10-23 16:00

    鴻蒙Flutter實(shí)戰(zhàn):06-使用ArkTs開發(fā)Flutter鴻蒙插件

    # 使用 ArkTs 開發(fā) Flutter 鴻蒙平臺(tái)插件 本文講述如何開發(fā)一個(gè) Flutter 鴻蒙插件,如何實(shí)現(xiàn) Flutter 與鴻蒙的混合開發(fā),以及雙端消息通信。 ## Flutte
    發(fā)表于 10-22 21:56

    鴻蒙Flutter實(shí)戰(zhàn):05-使用第三方插件

    # 鴻蒙Flutter 實(shí)戰(zhàn):使用第三方插件 在鴻蒙Flutter開發(fā)中,如果涉及到使用原生功能,就要使用插件。使用插件有兩種方式,一種是自己編寫原生ArkTS代碼,在Dart側(cè)調(diào)用。另外一種
    發(fā)表于 10-22 21:54

    鴻蒙Flutter實(shí)戰(zhàn):04-如何使用DevTools調(diào)試Webview

    # 鴻蒙 Flutter 如何使用 DevTools 調(diào)試 Webview 在《鴻蒙 Flutter 開發(fā)中集成 Webview》,介紹了如果在 Flutter 中集成 Webview. 本文
    發(fā)表于 10-22 21:53

    鴻蒙Flutter實(shí)戰(zhàn):03-鴻蒙Flutter開發(fā)中集成Webview

    # 鴻蒙 Flutter 開發(fā)中集成 Webview ## 主要有兩種方案 ### 使用第三方庫(kù) 如 使用`flutter_inappwebview`插件,在 pubspec.lock 文件中
    發(fā)表于 10-22 21:51

    鴻蒙Flutter實(shí)戰(zhàn):02-Windows環(huán)境搭建踩坑指南

    環(huán)境搭建 1. 下載Flutter SDK,配置環(huán)境變量 鴻蒙 Flutter SDK 需要在 Gitee 下載。目前建議下載 dev 分支代碼。 需要配置以下用戶變量 注意鴻蒙開發(fā)需要安裝Java
    發(fā)表于 10-22 15:05

    鴻蒙Flutter實(shí)戰(zhàn):01-搭建開發(fā)環(huán)境

    ; 如果要適配ios,需要安裝Xcode Mac 安裝(推薦) 環(huán)境變量配置 # Flutter Mirror export PUB_HOSTED_URL=https
    發(fā)表于 10-21 19:35

    Flutter首次亮相Google Cloud Next大會(huì)

    Flutter 團(tuán)隊(duì)在近期首次參加了 Google Cloud Next 大會(huì),這意味著 Flutter 在開發(fā)社區(qū)中的影響力正在日益增長(zhǎng)。
    的頭像 發(fā)表于 05-09 10:15 ?499次閱讀

    淺談兼容 OpenHarmony 的 Flutter

    OpenHarmony SIG 組織在 Gitee 開源了兼容 OpenHarmony 的 Flutter。該組織主要用于孵化 OpenHarmony 相關(guān)的開源生態(tài)項(xiàng)目。 ? ? ▲ 倉(cāng)庫(kù)地址
    的頭像 發(fā)表于 02-02 15:22 ?620次閱讀
    淺談兼容 OpenHarmony 的 <b class='flag-5'>Flutter</b>