【Flutter】3.13がリリース!その内容を10個に分けてまとめてみたよ!

Dart

概要

どうも、@daiki1003です!

とうとう!Flutter 3.13がリリースされました!
preが何回かアップデートされたりしていましたがとうとうって感じですね。

本記事では、

What’s new in Flutter 3.13
2D scrolling, faster graphics, Material 3 updates and more

を元にどんな機能/改善がリリースされたのかの全貌をお届けできればと思っております。

にしても、Flutterってマイナーバージョンの変更でおぉ!ってなるのは合ってるのだろうか笑

Impeller

描画

まず、Impellerの改善です。
Impellerは、3.10stableになり、
日の目を浴びたSkiaに代わるレンダリングエンジンです。

今回のアップデートで、描画速度が平均でSkiaの頃の約倍になったとか。

広色域

色域の規格でsRGBというのを聞いたことがあるとは思いますが、広い色域のことをそのまま広色域と言います。
Impellerを有効にすることで、広色域がデフォルトでサポートされる様です。
まぁ、より色の表現の忠実度が上がったという認識で問題ないかと思います。

Android対応

こちらは今年末にプレビュー版をリリースできる、くらいの進捗感。
とはいえ、既に結構良くなっているみたいなのでリリースが待ち切れないですね!

macOS

プレビュー版が利用可能に!

折りたたみ可能デバイス

折りたたみ可能デバイス対応用の新しいAPIが登場したとのこと。
FlutterView.displayDisplayインスタンスを返すとのこと。
これは物理的なサイズやピクセル比、リフレッシュレートなんかを取得できるみたいですね。

Material

TextField

文字列認識が可能に!

AlertDialog

SwitchCircularProgressIndicator同様に、AlertDialog.adaptiveが利用可能に!


出典:https://medium.com/flutter/whats-new-in-flutter-3-13-479d9b11df4d

CupertinoDatePicker

monthYearという、年月だけのピッカーに対応!
直近これを自前で実装したのでもうちょっと早く出てきてくれてれば!笑

Radio

useCheckmarkStyleを指定すると、いつものラジオボタンの代わりにチェックマーク表記になるみたいですね。

InputDecoration

InputDecoration.errorというプロパティができたみたいです。
これにより、TextFieldなどのエラー表示をカスタマイズできます。

今までは、カスタマイズしようとするとerrorText, errorStyle, errorMaxLinesなどのプロパティに
より調節していましたがこれがやりやすくなっていそうですね。

【Flutter解体新書 vol. 1】TextField.decoration篇
さて、皆さんに一つ質問です。 FlutterのWidgetって、パラメタ多すぎじゃありません?笑 そんな、あなたに朗報です。 このブログを始めとする解体新書シリーズを読めば 何を指定したら何が変わるのか、理解出来る様...

その他

ButtonSegmenttooltipが表示できる様になっていたり、


出典:https://medium.com/flutter/whats-new-in-flutter-3-13-479d9b11df4d

ExpansionPanelListの余白が調整できる様になっていたり、


出典:https://medium.com/flutter/whats-new-in-flutter-3-13-479d9b11df4d

Switchのアウトライン幅が調整できる様になっていたり、


出典:https://medium.com/flutter/whats-new-in-flutter-3-13-479d9b11df4d

NavigationDrawerのタイルのpaddingが調整できる様になっていたり、


出典:https://medium.com/flutter/whats-new-in-flutter-3-13-479d9b11df4d

TabBarをどう配置するか調整できる様になっていたり、


出典:https://medium.com/flutter/whats-new-in-flutter-3-13-479d9b11df4d

Material 3に準拠したelevatedChipが追加されていたり、


出典:https://medium.com/flutter/whats-new-in-flutter-3-13-479d9b11df4d

SearchBaronSubmittedが追加されていたり、
GestureRecognizerファミリーが追加されていたりと色々変更されていますね!

アプリのライフサイクル

AppLifecycleListenerが追加され、hiddenプロパティも追加されています。
hiddenプロパティはアプリが”非表示”になった事を表す抽象ステータスの様です。


出典:https://medium.com/flutter/whats-new-in-flutter-3-13-479d9b11df4d

スクロール

二方向スクロール、つまり縦と横双方向にスクロールすることを可能にする様々なクラスが追加された様です。

ChildVicinityとか聞いたことのない単語が並んでいたりするので要確認ですね。

動作確認はこちらのDartPadにて。
いやー、すごい。

Sliver

Sliverファミリーに、また新たな仲間が追加されたみたいです!
複数のSliverを並べる、SliverMainAxisGroup/SliverCrossAxisGroup
横軸のスペーシングを提供する、SliverCrossAxisExpanded/SliverConstrainedCrossAxis
Sliver装飾用のDecoratedSliver

こちらも、動作確認はDartPadにて。
ある大きめのカンファレンスのサイトに載せる、タイムテーブルを作るのにちょうど良さそうとすぐに思いました笑

プラットフォーム

Android

Android14 / API34がサポート対象として追加されました。

iOS

画面回転時の歪みを軽減した様です。

Runnerから変更可能に

これはかなりでかい!笑
複数プロジェクトを触っている人にはあまりにもデカすぎるニュースではないでしょうか。

Flutterプロジェクトを作成した際に、iOSが有効になっていればiosフォルダの中にRunner.xcodeprojが生成されます。
この名前が変更できないため、複数プロジェクトに携わるとXcodeRunnerだらけになってしまいますw

これが回避できそうですね!

iOS17/Xcode15の準備

iOS14/Xcode15使いたい人は3.13を使ってねとのこと。

ゲーム

Flutter Gamesというwebページを設置し、
ゲーム開発者のサポートを積極的に行なっている様です。
今年7月にAdmobと協力してオンラインセミナーを開催したりもしたみたいです。

Breaking Changes

Material 3

次回の安定版でMaterial 3がデフォルトで有効になるとのこと。

Material 2Material 3の違いについて知りたい方は
こちらのサイトが良さそうです。

Android Support

APIレベル16, 17, 18はサポートバージョンから外れる様です。
ただ、自動でされるわけではないので自分でgradleファイルを変更する必要があります。

Dart

Dart 3.1もリリースされたみたいですね!
これに関してはまた追って記事にしたいと思います。

最後に

駆け足でまとめてみましたが、どうでしょうか?
ここわかりづらいとか説明追加して欲しいとかあれば教えてください!

誰かのお役に立てば。

Twitterフォローお願いします

「次回以降も記事を読んでみたい!」
「この辺分からなかったから質問したい!」

そんな時は、是非Twitter (@daiki1003)Instagram (@ashdik_flutter)のフォローお願いします♪

Twitterコミュニティ参加お願いします

Twitterコミュニティ「Flutter lovers」を開設しました!
参加お待ちしております😁

☕️ Buy me a coffee

また、記事がとても役に立ったと思う人は
コーヒーを奢っていただけると非常に嬉しいです!
@daiki1003

コメント

タイトルとURLをコピーしました