Androidの宣言型UIツールキットJetpack Composeの最近の1.1リリースでは、すべてのタッチターゲットのアクセシビリティが向上し、パフォーマンス向上のために画像ベクトルキャッシュが追加され、いくつかの実験的なAPIが安定化している。
新しいImageVector
キャッシュは、パフォーマンスを大幅に向上させるとGoogleは言っている。特に、キャッシュには、painterResource
APIを使用して作成されたすべてのベクター画像が含まれている。これは、ベクタードローアブルとラスタライズされたアセットをロードするために使用されるコモディティAPIである。その際、ユーザが事前にタイプを知っている必要はない。
Jetpack Compose 1.1は、ボタンやその他のコントロールなどのタッチターゲットに対するアクセシビリティ要件を適用する方向にも進んでいる。たとえば、Androidマテリアルアクセシビリティガイドラインでは、ラジオボタンが少なくとも48x48dpである必要がある。つまり、Jetpack Composeは、コンポーネントがレイアウトの端に近すぎたり、別のコンポーネントに近すぎたりしないように、コンポーネントの周囲に余分なスペースを追加する場合がある。最低限のユーザビリティ要件を満たすことに加えて、この変更によって、Composeがマテリアルデザインコンポーネント(ビューなど)に適用されるもののと同じデフォルトに従うようになり、それによって視覚的な一貫性も向上する。
新しいタッチターゲットのサイズ設定の動作により、既存のUIレイアウトが変更される可能性があることに注意してください。その結果、UIレイアウトが破損する可能性がある。このため、LocalMinimumTouchTargetEnforcementプロパティをfalse
に設定することで、この新しい動作を無効にできる。しかし、その場合、UIは最低限のユーザビリティ要件を満たさなくなる。
Jetpack 1.1では、アニメーションに関連する多くのAPIが安定化している。たとえば、AnimatedVisibility
コンポーザブルでは、EnterトランジションとExitトランジションを適用することで、一部のコンテンツの表示と非表示をアニメーション化するために使われている。安定した出口と入口のトランジションには、フェードインとフェードアウト、スケールインとスケールアウト、スライドインとスライドアウトなどが含まれる。
さらに、いくつかの新しいAPIが実験的に導入された。たとえば、rememberSaveable
をAnimatedContentで使用できるようになった。また、新しいBringIntoView
APIを使って、parentがスクロールしてアイテムを表示できるようになりました。
Jetpack Composeを構成する7つのコンポーネントのそれぞれに関して、すべての詳細を確認するには、公式リリースノートをお見逃しなく。