概要

Googleは8月12日、クロスプラットフォームUIフレームワークFlutterの新バージョン3.47をリリースした。今回の目玉は、UIウィジェット群であるMaterial UIとCupertino UIパッケージが正式に1.0へ到達し、コアSDKから分離されたことだ。これにより開発者はFlutter SDK本体をアップグレードすることなく、最新のMaterialおよびCupertinoウィジェットのスタイルを個別に利用できるようになった。移行はdart fix --apply --code=migrate_design_widgetsコマンドで自動化されており、既存プロジェクトも比較的スムーズに対応可能だ。

デスクトップ向けレンダリングエンジンImpeller

次世代レンダリングエンジンImpellerが、macOS・Windows・Linuxのデスクトップ環境でデフォルトのレンダラーとなった。Impellerは実行時のシェーダーコンパイルを排除する設計になっており、アプリ起動直後の初フレームからシェーダーコンパイルに起因するカクつきがなく、滑らかなアニメーション体験を実現する。あわせてデスクトップでのテキストレンダリングにSignedDistanceFunction方式が採用され、より鮮明な文字表示が可能になった。

プラットフォーム別の変更

iOS/macOSでは対応バージョンの引き上げが行われ、iOSの最小対応バージョンは13から15へ、macOSは10.15から12へと変更された。あわせてiOS 27 SDK対応として、UISceneライフサイクルの採用が必須となる。macOSではApple Silicon移行の推進に伴い、Intel Macに対する自動テストが廃止された。またSwift Package Managerへの移行も進んでおり、利用の多いiOSプラグイン上位100件のうち92件が既に移行を完了しているという。

パフォーマンスと開発者体験の改善

WebAssembly対応では--wasmフラグによる有効化に加え、実験的機能として遅延ローディング(--enable-wasm-deferred-loading)がサポートされた。開発者向けにはWidget Previewにローカルキャッシング機能が導入され、.widget_preview/フォルダの活用によってセットアップ時のオーバーヘッドが削減されている。デスクトップでは複数ウィンドウ機能が強化され、ポップアップウィンドウのサポート、ウィンドウハンドルのクエリ機能、サイズ自動調整APIが新たに追加された。Androidでは仮想キーボードの修飾キーが固着する不具合も修正されている。

破壊的変更と今後の展望

一方で、flutter_localizationsパッケージがコアSDKからアンバンドルされ、GlobalMaterialLocalizations.delegatesを用いた新形式への移行が必要になる点には注意が必要だ。コアSDK内に残る設計ライブラリは11月予定のFall安定版で正式に廃止される見込みで、開発者は早めの移行が求められる。Googleは今後、WebAssemblyのデフォルト化やImpellerフォールバックの廃止、SwiftPMへの完全移行をさらに推進していく方針を示しており、Flutterのプラットフォーム基盤は今後も継続的に刷新されていく見通しだ。