新しいレンダリングエンジンImpellerとは?
ENECHANGE エネルギークラウド事業部 システム開発部の利廣悠司氏は、Flutterの新しいレンダリングエンジンImpellerについて解説した。Flutter従来のSkiaでは、iOSアプリ終了時にシェーダーキャッシュが消去され、起動時の待機が生じる課題があった。これを解消するため、Flutterに特化して設計されたImpellerでは、シェーダーをビルド時に事前コンパイルすることで、描画時の待機を大幅に削減。加えて、素材へのタグ付けによるモニタリング性の向上や、積極的な並列処理による高速化も特徴だ。
描画の流れとしては、コードからRender TreeとDisplay Listを生成し、描画対象の形状を三角形などの基本単位に分け、ピクセル単位で色情報を計算することでレンダリングが行われる。これらの処理の一部では、あらかじめコンパイルされたシェーダーが即座に活用される。利廣氏はさらに、Impellerを活かす工夫として、透明度のアニメーションにFadeTransitionを使うことや、RepaintBoundaryで再描画範囲を限定することで、描画負荷とバッテリー消費を抑制できると紹介した。
Autofill Deep Dive 〜パスワード入力・更新周りのUX向上を目指す!〜
ENECHANGE エネルギークラウド事業部 システム開発部の片田優太氏は、FlutterアプリにおけるAutofill機能の活用と課題について解説した。AutofillGroupやautofillHintsを使うことで、ユーザー名やパスワードの入力支援が可能だが、iOSでは意図しないタイミングでの自動入力や、パスワード更新時のダイアログが表示されないなどのUX上の問題が確認された。これらはSwiftUIでも同様に再現されたため、OS側の仕様による制約と推測されるという。Autofillを活用することで、手動入力の手間を減らし、デバイス間の同期も容易になる一方、挙動の一貫性には課題が残る。
片田氏は、代替手段としてsecure_storageとlocal_authを用いた生体認証や、パスキー認証の導入も選択肢になり得ると述べた。ただし、これらは端末引き継ぎやセキュリティ設計の難易度が上がるため注意が必要である。最適なUXはサービスの要件やユーザー層によって異なるため、Autofillに固執せず、柔軟かつ実用的な選択が重要であるとまとめた。
こうして6名の発表が終了。イベント全体を通じて、Flutterに関する実践的な学びにあふれていた。