概要
どうも、@daiki1003です!さぁ、とうとうやってまいりましたね。
Flutter最新バージョン!
そろそろ4系が欲しいところではありますが、 3.32がやってきました。
早速アップデート内容見ていきましょう!
ちなみに、本記事は全てAIではなく著者が書いています。
🍁 所感
個人的に嬉しいアップデート3つ
- プロパティエディタ
iOSペースト時のダイアログ撤廃TextFieldのUX向上
今回のアップデートが大事な人
-
Cupertino系ウィジェットを多用している方 Webでの利用者
Web
Hot Reloadが可能に!
なんといってもWebの開発ユーザにとって、これは大きいニュースですね。
flutter run コマンドに --web-experimental-hot-reload を付けることで有効化出来るそうです。
また、その影響もあってか、 DartPad にも Reload ボタンが追加され、Hot Reloadが出来るようになりました!
Flutter
Expansible & RawMenuAnchor
これまでは開閉可能なWidgetとして、 ExpansionTile が用意されていました。
これは、 Material Theme で描画される開閉可能なWidgetです。
今回追加された、 Expansible はもっと低レイヤーであり、テーマに縛られることなく同等の機能を提供することができます。
同様に、 MenuAnchor に対して RawMenuAnchor も今回追加されました。
iOS
ペースト時のダイアログ撤廃
今までは他のアプリからペーストする際に、ダイアログが表示されていました。
それが基本的になくなったようで、これはとても嬉しいですね!
とはいえ、アプリ独自のコンテキストメニューを利用している際はまだサポートされていないようです。
関わっているプロジェクトの中では、特殊な処理を利用していたのですがこれで必要なくなりそうな予感です。
Squircle
結構待ち望んでいた人も多いのではないでしょうか?
Superellipse という名前で追加されました。
iOSのアプリアイコンで利用されているSquircle。
これにより、より忠実度の高いiOSデザインを実現できるようになったのではないでしょうか。
追加の方法としては、
RoundedSuperellipseBorderを利用するClipRSuperellipseを利用する- もっと低レイヤーのものが必要であれば、
Canvas.drawRSuperellipse, Canvas.clipRSuperellipse,Path.addRSuperellipseなどを利用する
CupertinoAlertDialog & CupertinoActionSheet
上記の Squircle を利用するようになったようです。
CupertinoSliverNavigationBar.search
検索画面を開く際の、アニメーションの忠実度がグッと上がりました。
確かに割と遜色ないかも!
[出典: https://medium.com/flutter/whats-new-in-flutter-3-32-40c1086bab6e]
Android
Gradle
Gradleプラグインが Groovy から Kotlin に変更されました。
これは以前から言及されていましたね。
スタイラスのサポート
iOS 同様に、Android でもスタイラスペンが利用可能になりました。
全部のジェスチャにはまだ対応していないですが、鋭意対応中とのこと。
Android 14 以上で、 TextField.stylusHandwritingEnabled などで設定すると利用できます。
Engine
Impeller
Android 9以前のデバイスではSkiaで動作していましたが、この安定性が向上しました。
Flutter 3.27ではVulkanにおけるレンダリングでのバグやクラッシュが割と多かった一方、3.27への対応の予定はないので、3.29にアップデートするかopt outするかをした方が良いそうです。
Material
CarouselController
CarouselController に animateToPage が追加され、より直感的に扱えるようになったり、 flexWeights プロパティが追加され、表現の幅が格段に上がりました。
TabBar
onHover や onFocusChange が追加され、より快適なUXを提供できるようになりました!
SearchAnchor & SearchAnchor.bar
viewOnOpen & onOpen コールバックが追加されました。
これにより、検索処理などの細かい制御ができるようになりました!
CalendarDatePicler.calendarDelegate
calendarDelegate が追加され、カレンダー表示時に月曜日始まりにする、などのカスタマイズが可能になりました。
Divider.borderRadius
borderRadius が追加され、特に太いDividerの際に見た目を調節できるようになりました。
Semantics
Semanticsを含むアプリのコンパイルが最大80%高速化されたようです。
スクリーンリーダーのUX、Android TalkBackのリンク認識、iOSのボイスコントロールなどが改善しました。
テキスト入力
TextField.onTapOutside の追加、テキスト選択時のコンテキストメニュー、 Autocomplete 利用時の選択肢の表示バグ修正、 FormField でエラーテキストではなく任意のWidgetを表示可能に、などさまざまな改善がされています。
DevTools
プロパティエディタ
ウィジェットのプロパティの中身などが確認できるようになったとのことで、これは相当嬉しいアップデートのように思えます。
VS Codeのサイドバーや Android Studioのツールウィンドウで表示できるとのこと。
[出典: https://medium.com/flutter/whats-new-in-flutter-3-32-40c1086bab6e]
Network
通信確認ツールのオフラインサポートがされました。
Gemini in Android Studio
Geminiの力をフル活用した開発が可能になるとのことで、楽しみですが Android Studio以外でも利用可能になることを心待ちにしております 🙏
AI
MCP
https://pub.dev/packages/dart_mcp が最近リリースされました。
Vertex AI → Firebase AI Logic
firebase_vertexai は firebase_ai パッケージとして生まれ変わりました。
これを導入することで、 Gemini と Imagen の両方が利用可能になります!
もし、 firebase_vertexai を利用中の方は firebase_ai に移行することが推奨されています。
AIモニタリング
Firebaseコンソール上で、Gemini APIの利用状況を詳細に確認ができるようになりました。
破壊的変更
-
SemanticProperties.liveRegion - 6パッケージの開発停止
flutter_markkdownios_platform_imagescss_colorspalette_generatorflutter_imageflutter_adaptive_scaffold
- サポートバージョン
- iOS12及びmacOS 10.14 (Mojave)のサポート停止
ExpansionTileControllerSelectionChangedCause.scribbleThemeData.indicatorColorThemeDataにあるxxxColorはそのうち全部deprecatedになりそうですね
最後に
いかがでしたでしょうか?気になるアップデートがある方は、 flutter upgradeまたは dartpad で試してみてくださいね!
Twitterフォローお願いします
「次回以降も記事を読んでみたい!」「この辺分からなかったから質問したい!」
そんな時は、是非Twitter (@daiki1003)やInstagram (@ashdik_flutter)のフォローお願いします♪
Twitterコミュニティ参加お願いします
Twitterコミュニティ「Flutter lovers」を開設しました!参加お待ちしております😁
☕️ Buy me a coffee
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!




コメント