概要
どうも、@daiki1003です!とうとうやって来ましたね!
毎度お馴染みの新しいアップデートの解説記事になります。
それでは行ってみましょー!
🍁 所感
個人的に嬉しいアップデート3つ
- TextFieldの範囲選択のUX向上
- Skiaの削除によるバンドルサイズ低下
- 実機ビルドでウィジェット選択モードを解除出来る
今回のアップデートが大事な人
-  Cupertino系ウィジェットを多用している方
- webでの利用者
Flutter
TextField
範囲選択時、カーソルを自由自在に動かせる様になりました!
出典: https://medium.com/flutter/whats-new-in-flutter-3-29-f90c380c2317
SelectionListener
SelectionListener や SelectionListenerNotifier を利用することで、SelectionArea や SelectableRegion の選択中の情報が SelectionDetails クラスより取得できる様になりました。
利用方法も SelectionListener でラップするだけ。
同様に、 InheritedWidget による SelectableRegionSelectionStatusScope クラスも追加されました。
Accessibility
Form や DropDownMenu辺りの読み上げの精度が向上しました。
Threading
Android と iOS で Dart コードがメインスレッドで実行される様になりました。
この影響で複数スレッドでやり取りする際のオーバーヘッドがなくなりました。
逆に、実行時間に関しては今までよりシビアになる必要がありそうですね。
Material
ThemeData.dialogBackgroundColorの非推奨
代わりに、 DialogThemeData.backgroundColor を利用しましょう。
基本的に、 ThemeData.xxxColor はあまり使わない方が良い認識です 👍
Circular(Linear)ProgressIndicator
year2023フラグに false を設定することで、最新の Material 3 に準拠出来る様になりました。
出典: https://medium.com/flutter/whats-new-in-flutter-3-29-f90c380c2317
Slider
こちらも同様に year2023 フラグを false にすることで最新の Material 3 準拠のデザインになります。
出典: https://medium.com/flutter/whats-new-in-flutter-3-29-f90c380c2317
FadeForwardsPageTransitionsBuilder
遷移時に、Android と同様のアニメーションが行われる様になり、 ZoomPageTransitionsBuilder でのパフォーマンス問題も解決しています。
BackdropGroup/ BackDropFilter.grouped
複数のバックドロップフィルターを表示するアプリケーションは上記ウィジェットやコンストラクタを使うことでパフォーマンスが向上しました!
iOS
Cupertino(Sliver)NavigationBar
bottom プロパティが追加され、開閉途中のスクロール時の挙動が改善され、大きい文字のタイトルを表示する .largeコンストラクタが追加されました。
出典: https://medium.com/flutter/whats-new-in-flutter-3-29-f90c380c2317
CupertinoSheetRoute
ドラッグして消せる CupertinoSheetRoute が追加されました。
出典: https://medium.com/flutter/whats-new-in-flutter-3-29-f90c380c2317
showCupertinoSheet
シート上で push/pop が可能な、 showCupertinoSheet が追加されました。
CupertinoAlertDialog
ダークモードでの再現度が向上した様です!
Impeller
完全に Skia のサポートが削除され、 FLTEnableImpeller のオプトアウトも不可能になりました。
今後のアップデートで Skia の削除がサポートされるため、バイナリサイズが削減されます!
Android
Vulkan
再現可能なちらつきやジッターが修正されました。
Impeller のサポート率が100%に!
今までは Vulkan 非対応デバイスでは、Skia が利用されていました。
今後は、OpenGLES 上で動作する Impeller にフォールバックされる様になりました。
これにより、 Flutter が動作する Android デバイスで100% Impeller がサポートされました 🎉
Gradle
3.19 から非推奨となっていたスクリプトベースの Flutter Gradle プラグインが削除されます。
3.16以前に作成したプロジェクトで、「 You are applying Flutter’s main Gradle plugin imperatively」と表示されているプロジェクトは影響を受けるため、マイグレーションをしましょう。
Web
wasm
アプリケーションをホストする際に、特別なレスポンスヘッダでホストする必要がなくなり、またヘッダを更新することでマルチスレッドで実行できる様です。
HTML レンダラの削除
読んで字の如くです。
img タグのハンドリング
img タグが使われた際の挙動について、 webHtmlElementStrategy フラグで制御できるそうです。
DevTools
Inspector
3.27 では、 新UIフラグがデフォルトでOFFでしたがONになる様です。
また、実機ビルドの際に、ウィジェット選択モード解除のボタンが表示される様になったそうです。
地味に嬉しい〜〜〜〜!
Logging
ログの重大度やカテゴリ、ゾーンや isolate などが表示される様になり、重大度でフィルタできる様になったり初期表示までのパフォーマンスが大きく改善した様です!
EcoSystem
パッケージ開発停止
以下パッケージの開発を2025年4月30日をもって停止する様です。
- ios_platform_images
- css_colors
- palette_generator
- flutter_image
- flutter_adaptive_scaffold
- flutter_markdown
☕️ 最後に
いかがでしたでしょうか?
いつもの様に、この後は 3.29 適用した際のブログも書くのでお楽しみに!
そして、今回は Dartも良いアップデートが入ったのでブログ化したいと思います。
Twitterフォローお願いします
「次回以降も記事を読んでみたい!」「この辺分からなかったから質問したい!」
そんな時は、是非Twitter (@daiki1003)やInstagram (@ashdik_flutter)のフォローお願いします♪
Twitterコミュニティ参加お願いします
Twitterコミュニティ「Flutter lovers」を開設しました!参加お待ちしております😁
☕️ Buy me a coffee
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!



コメント