BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Flutter 3.27は新しいレンダリングエンジンImpellerをプロモート、iOSとMaterialウィジェット等を改善

Flutter 3.27は新しいレンダリングエンジンImpellerをプロモート、iOSとMaterialウィジェット等を改善

原文リンク(2024-12-30)

Google社のクロスプラットフォームUIキット Flutter 3.27の最新バージョンは、改善されたCupertinoウィジェットによりAppleのUIガイドラインへの準拠が向上し、CarouselView、リストの行と列、ModalRoutesトランジションなどを含む多くの変更をもたらした。さらに新リリースではImpellerレンダリングエンジンがデフォルトとなり、パフォーマンスの向上、計測サポート、並行処理のサポートなどが実現した。

Cupertinoはウィジェットのコレクションで、Appleのヒューマンインターフェースガイドラインに厳密に準拠している。Flutter 3.27では、CupertinoCheckboxCupertinoRadioCupertinoSlidingSegmentedControlを含むいくつかのウィジェットを更新して忠実度を高めている。また、CupertinoCheckboxおよびCupertinoSwitchの設定可能性が拡張され、CupertinoButton をiOS 15で導入された最新のカスタマイズオプションと同等にしている。その他の改善点はCupertinoActionSheetCupertinoContextMenuCupertinoDatePickerCupertinoMagnifierに影響を与えている。

AndroidネイティブのMaterial UIに関して、Flutter 3.27はflexWeightsパラメータを使用してカルーセルビュー内で占める相対的なアイテムの重みを指定することでより動的なレイアウトを定義できるよう、CarouselView.weightedCarouselViewを拡張した。さらにSegmentedButtonは垂直に配置できるようになり、いくつかのウィジェットがMaterial 3の仕様により適切に整列するように修正された。

Flutter 3.27はModalRoutes、テキスト選択、行と列の間隔も改善した。ナビゲーター領域全体を占有して以前のルートとのインタラクションをブロックする特徴を持つModalRoutesはあるルートからの退出トランジションと新しいルートへの進入トランジションを同期させることができるようになり、スムーズに連携するようになっている。テキスト選択ではLinux、macOS、Windows で Shift + クリックジェスチャーをサポートし、クリックした位置まで選択範囲を拡張できるようになった。行と列はspacingパラメータを使用できるようになり、互いにオフセットしやすくなった。

1年以上のプレビューを経て、新Impellerレンダリングエンジンが最新のAndroidデバイスでデフォルトに昇格し、旧レンダリングエンジンのSkiaを置き換えた。互換性の問題が発生した場合に備えてSkiaはオプトインとして引き続き利用可能である。Impellerは、シェーダーやリフレクションの構築、パイプラインステートオブジェクトの事前作成など、Skiaが実行時に行っていた多くのタスクをコンパイル時に実行するようになり、パフォーマンスをより予測可能にするためにキャッシングを改善している。また、テクスチャやバッファにラベルを付け、レンダリングパフォーマンスに影響を与えることなくアニメーションをディスクにキャプチャできるようにすることでデバッグサポートも向上している。必要に応じてImpellerは単一フレームのワークロードを複数のスレッドに分散させてパフォーマンスを向上させることができる。

今後、私たちはAndroidにおけるImpellerのパフォーマンスと忠実度の改善を続けていきます。また、SkiaのフォールバックをなくすためにImpellerのOpenGLバックエンドを本番環境に対応させる予定です。

その他注目すべき改善点として、iOSでのレンダリングパフォーマンスの向上、Swift Package Managerのサポート、さらにAndroidにおけるエッジツーエッジ および フリーフォームサポートがある。全体の詳細を知りたければ公式発表をお見逃しなく。

作者について

この記事に星をつける

おすすめ度
スタイル

BT