本セッションの登壇者
セッション動画(YouTubeチャンネル登録もお願いします。)
それではFlutterトレンドのセッションとして、Google I/O 2022 Flutter / DartピックアップというタイトルでFlutter公式の最新情報について発表させていただきます。
名前はroboと申します。もちろんこれはハンドル名で、兼高理恵と申します。LT時間が限られていますので、先に進ませていただきます。
まずお詫びです。資料は40ページ以上になりました。このため、5分では説明不可能ですので、「What's new in Flutter」(Flutterの新機能) のみの発表といたします。
この資料は公開していますので、よろしければGoogle I/O 2022の動画を見る際に利用していただければ幸いです。
Flutter 3の新機能
ではFlutterの新機能です。
Flutter 3がリリースされました。今までBetaだったmacOSとLinuxもStableに移行し、これでiOS / Android / Web / Windows / macOS / LinuxすべてがStableサポートになりました。
そしてmacOS対応としては、macOS UIパッケージでmacOSシステム独自のルックアンドフィールを再現できるようになりました。Apple Siliconサポートとしては、ARM64プロセッサでネイティブに実行されるツールが提供されました。これでRosettaは不要になるそうです。Flutter SDKはIntel版とARM版の両方がリリースされるようになりました。Universal BinaryサポートとしてmacOSアプリは両バイナリのビルドをサポートするようになりました。
Linux対応につきましては、Ubuntuを支援するCanonicalの協力のもと、カスタマイズされたUIとシステムサービスとの統合を追加する、一連のパッケージがもたらされました。Ubuntuのルックアンドフィールの包括的なテーマとウィジェットセットもあるそうです。
Web対応につきましては、アプリ起動時の、Flutterフレームワーク、エンジン、コンテンツの読み込みを制御できる新しいAPIが追加されました。これにより、Webブラウザのheadless modeでのFlutterアプリの実行に対応しました。これで自動テストもしやすくなると思います。
画像デコードに最新のWeb標準が適用されました。Chrome 99以降でサポートされているWeb Codex APIを使用して画像処理を大幅に高速化できるようになっています。
モバイル対応については、Foldableデバイスのサポートが追加されています。これはMicrosoftのSurface対応からの貢献だそうです。Material 3 Widgetの追加で、Androidに最新のエクスペリエンスも提供できるようになりました。Android platform viewの再構築により、google_mobile_adsを使ったネイティブ インライン 広告において、ページ遷移やスクロールなどのユーザー操作がよりスムーズになったそうです。
Developer toolsではPerformance tabの拡張トレースが改良されました。パフォーマンス情報に、build / layout /paint eventが新規追加され、アプリ実行に占めている時間を表示できるようになりました。
一部のレンダリングタイプがオフ可能になりました。これは負荷を減らすことによって、パフォーマンスの問題を絞りやすくするためのものです。
さらに、昨年のI/Oからの更新分としては、ネットワークタブの改善、Provider専用のプラグインが追加されているそうです。
Put Flutter to Work Demoは、Flutterで UIコンポーネントを作成し、既存アプリケーションに組み込めることを伝えるデモンストレーションです。サンプルリポジトリのREADMEには、各ネイティブプラットフォーム用のFlutter製モジュールのインポート手順が紹介されています。
Dart言語新機能はFlutter 2.17のリリースにともなう発表です。Enhanced enumerations / Named argument anywhere / Super constructorsという新言語機能が追加されています。
enhanced enumerationsは列挙型に追加のフィールド、メソッド、ゲッター、演算子を指定でき、インターフェースの実装やmixinも適用できます。これでclass型と同じ宣言が使えるようになりました。
Named argument anywhereは位置引数と名前付き引数を読みやすい方法の順番で並べ替えることができるようになりました。
Super constructorsは、super付きのパラメータを使えるようにします。super構文を使用すると、パラメータをスーパークラスコンストラクタに暗黙的に渡して、冗長性を削除することができます。
Firebase integrationは、FlutterとFirebaseとの連携を統合します。ちょっと時間が押していますので(説明を)飛ばします。
Flutter casual games toolkitについて詳しくは画面下部のURLからリリース発表ブログを参照いただければ詳しいことが確認できます。
キーノートの最後は、Flutterが世界中のコミュニティや開発者の貢献に支えられていることへの感謝の言葉で締められています。Flutter 3には何千もの開発者による貢献が含まれていることや、Flutter meetupとUser groupは世界68カ国に広がっていること、400以上のコミュニティがFlutterフェスティバルを開催してくれたということです。そして最後に、Flutterを作ってくれたすべての人への感謝が込められていました。
最後に、今回の資料の中には、各セッションのポイントをまとめていますので、よろしければ後で見ていただければと思います。Google I/O Pinballというゲームもありますので、こちらも見ていただければと思います。
それではちょっと時間が押してしまいましたけれども、ご清聴ありがとうございました。