概要
どうも、@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
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!
コメント