概要
どうも、@daiki1003です!本日、11月16日、とうとうFlutter 3.16、Dart 3.2がリリースされました!
本記事では、Flutter 3.16に焦点を当てて、下記記事の要約をしていこうと思います。


それでは行ってみましょー!
Framework
Material 3がデフォルトに
デフォルトで、Material 3になります。
オプトアウトはMaterialApp.useMaterial3にfalseを明示的に指定する必要があります。
ですが、Material 2はdeprecatedとなり、いずれ取り除かれます。
なので遅かれ早かれ対応する必要はあるようですね。
この時に、カラーパレットはColorScheme.fromSeedで生成することが推奨されています。
Material 3モーション
EasingやDurationsといったMaterial 3のモーション用クラスが追加されました。
モーションについては以下を参照ください。
TextScalerウィジェット
Androidでは目がみえづらい方のために、非線形のフォントスケーリング機能があります。
これに対応するために、Text.stextScaleFactorプロパティの代わりに、TextScalerクラスが追加されました。
SelectionAreaの改善
ネイティブと同様にテキストを選択できるようになり、さらに単語単位で選択範囲を変更できるようになっています!
iOS/macOSにてショートカットメニューのアイコンを自動並び替え


出典:https://medium.com/flutter/whats-new-in-flutter-3-16-dba6cb1015d1
MatrixTransitionウィジェット
アニメーションの値が変更されるたびに、onTransformコールバックが呼ばれ、現在の値が取得できます。
この値を利用したアニメーションを実現できるようになりました!
flutter_testにPaintPatternが追加
画面に正しい色で正しい矩形が描画されているか、確認する際に今までだとgolden_testを使う必要がありました。PaintPatternAPIを使うことで、ユニットテストと同じ書き味でexpectを記述することが
可能になります。
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,
),
);
Scrollingの改善
デフォルトでKeepAliveのサポートを受けることができます。
また、two_dimensional_scrollablesパッケージもリリースされました。


TableViewのような二次元スクロールをサポートするパッケージであり、Flutterチームによって
メンテナンスされます。
Impeller
Android
stableチャンネルにて、AndroidでのImpellerがプレビュー可能となりました!Vulkanのサポートなしには動かないので、テストの際にはVulkanが対応しているか
確認の上で行ってください。
利用する際は、flutter runに--enable-impellerフラグを渡すかAndroidManifest.xmlを変更するだけです。
パワーアップ
Impeller上での文字列の表示でメチャクチャ改善がなされたようです!
これは楽しみですね!
変化が大きすぎて、ユーザーはアプリを触ってて気付くと思うよ、とまで書かれています。iOSではそこまでの改善はされていないようです。
Performance Overlayが表示可能に
3.10のリリース時に、Impellerで表示されなくなってしまったPerformance Overlayが表示されるようになったようです。
ディザリングがデフォルトで有効化
ディザリングがデフォルトで有効化され、綺麗に表示されるようになりました。
ゲーム
最近は、ゲームを推してますね。
近い将来、3Dも対応するとのことで個人的にすごく楽しみです!
そして、個人的にはこのページにカタンっぽいのもあって気になるw
Casual Game Kitのアップデート
メジャーアップデートが施されたとのこと。
Web
Chrome DevToolsにパフォーマンス表示
Android
マウスのスクロールを精細に
Android端末には、マウスを接続することができます。
その際、いっぱい動かさないとスクロール出来なかったものがより精細になったそうです。
Predictive back navigation
Android14から搭載されたPredictive back navigationが使えるようになりました!
iOS
App Extension
いくつかのApp Extensionが使えるようになりました!
テキストのシェア
テキストを選択した際に、tooltipでShareが表示され、シェアシートが表示されるようになりました!
パッケージ
New Flutter Favorites
新たに7個のパッケージがFlutter Favoritesの仲間入りをしたようです。
Virtual Summit
パッケージ開発者同士の知見共有などを目的としたサミットを行うようです。
Googleに勤めている人を含めた50人以上の人を呼ぶ、とのことですごく楽しみですね!
(パッケージ開発しないと)
Google Mapsカスタマイズ
Google Play Console内のMap Stylesというページにて、
マップのスタイルをカスタマイズする機能を提供した様です。


出典:https://medium.com/flutter/whats-new-in-flutter-3-16-dba6cb1015d1
なにそれめっちゃ楽しそう…
Flutterで使うには、map IDをセットするだけみたいです。
GoogleMap(
onMapCreated: _onMapCreated,
initialCameraPosition: const CameraPosition(
target: _kMapCenter,
zoom: 7.0,
),
key: _key,
cloudMapId: _mapId
);
Camera X
Flutter 3.10.xで事前サポートを追加したCamera X。
本リリースで、いろんなアプリで使うであろうカメラの機能のほとんどが追加されました。


macOSのビデオプレイヤー


こちらのプラグインが、macOSに対応したそうです。
DevTools
DevTools Extension


パッケージや開発中のプロダクトに紐づいたDevToolsを独自で作成出来るようです!
これはかなりワクワクする発表ですね!
既に、Provider, Drift, Patrolなどのパッケージでは利用されているようです。
確かに、DBパッケージにおける中身の確認とかめちゃくちゃ重宝しそうです。
Homeタブ
開発中のアプリのサマリを表示する画面が追加されました。
その他
以下のような改善がされています。
・全体的なパフォーマンス
・ホットリスタートの堅牢性
・テキスト選択やコピーの挙動
・ネットワークプロファイラのビューア
VSCode
VSCodeのFlutterプラグインも改善されています!


出典:https://medium.com/flutter/whats-new-in-flutter-3-16-dba6cb1015d1
サイドバーから以下に簡単にアクセスできます。
・DevToolsを開く
・現在のデバッグセッション
・利用可能なデバイス
・新規プロジェクトの作成
・ホットリロード&リスタート
・flutter doctor -vの実行
・その他色々
Deprecated


一般的なAPIは含まれていない印象なので、困る人はそこまで多くないのではないでしょうか。
誰かのお役に立てば。Twitterフォローお願いします
「次回以降も記事を読んでみたい!」「この辺分からなかったから質問したい!」
そんな時は、是非Twitter (@daiki1003)やInstagram (@ashdik_flutter)のフォローお願いします♪
Twitterコミュニティ参加お願いします
Twitterコミュニティ「Flutter lovers」を開設しました!参加お待ちしております😁
☕️ Buy me a coffee
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!




コメント