ニュース

「Flutter 3.24」「Dart 3.5」が公開 ~低レベル描画API「Flutter GPU」を実験導入

Webとの相互運用性、他のプログラミング言語との相互運用性にも進歩

Google、「Flutter 3.24」「Dart 3.5」をリリース

 米Googleは8月6日(現地時間)、「Dart 3.5」「Flutter 3.24」をリリースした。「Flutter GPU」APIの早期プレビュー、iOS向けの改善などが行われている。

 「Flutter」はモバイル(iOS/Android)、Web、デスクトップ(Windows/macOS/Linux)をカバーするUIフレームワークで、プラットフォームごとの差異を独自のレンダリングレイヤーで抽象化・吸収することにより、高い開発生産性をもたらす。かつてはプラットフォームによってアニメーションがカクつくという問題もあったが、それも新しいエンジン「Impeller」とシェーダーの改善により解決されつつある。とはいえ、状況によっては高度に抽象化されたプラットフォームではなく、より低レベルな(ハードウェアに近い)処理でパフォーマンスを出したい場合もあるだろう。

 そこで、「Flutter GPU」という低レベルグラフィックスAPIが実験的に導入された。このAPIを用いてカスタムラスターパイプラインを定義し、GPUに直接描画コールを送れば、手間はかかるものの、より高品質なグラフィックスを実現できる。こうした低レベルプログラミングの経験があまりない開発者向けのパッケージも充実させていくとのこと。

 また、macOS/iOS向けの強化として「Swift Package Manager」が早期サポートされる。Swift言語で開発された豊富なパッケージが「Flutter」で利用できるようになり、Appleデバイスにおける「Flutter」の可能性が大きく広がるだろう。Appleデバイスのインターフェイスデザインガイドラインに準拠した「Cupertino」ウィジェットライブラリもモダナイズされる。

 一方、「Dart 3.5」の目玉は「Dart」とWebの相互運用ライブラリ「package:web」がv1.0の安定版に達したことになりそうだ。これは古い「dart:html」などを置き換えたもので、「WebAssembly」(WASM)へのコンパイルでも今後は「package:web」が用いられることになる。古い相互運用APIは非推奨となり、来年後半には完全に廃止される予定なので注意したい。

 そのほかにも、C、Java、Kotlin、Objective-C、Swiftへの直接呼び出しをサポートするネイティブ相互運用性についても、さまざまな改善が行われた。パッケージリポジトリ「Pub.dev」でもタグ付けの仕組み(トピック)の見直しや新しい「pub unpack」コマンドの導入といった機能強化が行われている。