概要
どうも、@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
を使う必要がありました。PaintPattern
APIを使うことで、ユニットテストと同じ書き味で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
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!
コメント