Wear Compose
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2022 年 4 月 20 日 | - | - | - | 1.0.0-alpha21 |
依存関係の宣言
Wear への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.wear.compose:compose-foundation:1.0.0-alpha21" // For Wear Material Design UX guidelines and specifications implementation "androidx.wear.compose:compose-material:1.0.0-alpha21" // For integration between Wear Compose and Androidx Navigation libraries implementation "androidx.wear.compose:compose-navigation:1.0.0-alpha21" // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material. // androidx.wear.compose:compose-material is designed as a replacement // not an addition to androidx.compose.material:material. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material please raise a bug to let us know. }
Kotlin
dependencies { implementation("androidx.wear.compose:compose-foundation:1.0.0-alpha21") // For Wear Material Design UX guidelines and specifications implementation("androidx.wear.compose:compose-material:1.0.0-alpha21") // For integration between Wear Compose and Androidx Navigation libraries implementation("androidx.wear.compose:compose-navigation:1.0.0-alpha21") // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material. // androidx.wear.compose:compose-material is designed as a replacement // not an addition to androidx.compose.material:material. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material please raise a bug to let us know. }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.0
バージョン 1.0.0-alpha21
2022 年 4 月 20 日
androidx.wear.compose:compose-foundation:1.0.0-alpha21
、androidx.wear.compose:compose-material:1.0.0-alpha21
、androidx.wear.compose:compose-navigation:1.0.0-alpha21
がリリースされました。バージョン 1.0.0-alpha21 に含まれる commit については、こちらをご覧ください。
新機能
- 曲線要素の背景を指定する新しい曲線修飾子
CurvedModifier.background
、.radialGradientBackground
、.angularGradientBackground
を追加しました。(I8f392) - 曲線テキストのオーバーフロー モード(clip / ellipsis / visible)を指定できるようになりました。(I8e7aa)
- Compose の修飾子と同様の
CurvedModifier.weight
修飾子を追加しました。これは、carvedRow と CurvedLayout の子(幅の場合)、curvedColumn の子(高さの場合)で使用できます。(I8abbd) - 曲線要素のサイズを指定する修飾子
CurvedModifier.size
、.angularSize
、.radialSize
を追加しました。(I623c7)
API の変更
- パラメータの順序を変え、Wear Compose API 全体で一貫して背景が色の前にくるようにしました。(I43208)
- clockwise と
insideOut
のパラメータを削除し、新しいクラスのよりわかりやすい定数に置き換えました。曲線レイアウト方向がLayoutDirection
に対応できるようになり、指定しない場合は継承されます(If0e6a) ScalingLazyColumn
に関する API の問題を修正するために、autoCenter: Boolean
をautoCenter: AutoCentringParams
に置き換えました。(Ia9c90)- 色がアイコン / toggleControl スロットに適用されるため、API 全体(Chip / ToggleChip / Dialog / Slider / Stepper / ...)で
iconTintColor
とtoggleControlTintColor
の名前をiconColor
とtoggleControlColor
に変更しました。(Ied238) PageIndicatorStyle
列挙型を値クラスに書き換えました(I2dc72)- レイアウトの前提条件をデベロッパーに示せるように、コンポーザブルの一部のスロットに
RowScope/ColumnScope/BoxScope
を追加しました。これにより、デベロッパーは一部のスロット コンテンツで追加の修飾子を使用でき、追加のレイアウト要素を提供する必要がなくなります。さらに、timeColor
とappColor
のデフォルト値がcontentColor
になるように、AppCard / TitleCard の色にマイナー アップデートを加えました。これらのプロパティは、必要に応じてすべて個別にオーバーライドできます。(I26b59) SwipeToDismissBoxState.Companion
オブジェクトを非公開にしました(I39e84)InlineSlider
とStepper
のパラメータの順序を修正しました。API ガイドラインを遵守するための簡単な変更です(I11fec)SwipeToDismissBoxState
のセーバー オブジェクトは使用されていないため、削除しました。(Ifb54e)- 最新の UX 仕様に沿うように
CompactChip
を更新しました。パディングは水平 = 12.dp、垂直 = 0.dp に縮小されました。ラベルのフォントがボタンから caption1 に変更されました。推奨されるアイコンサイズは、アイコンとラベルの両方がある場合は 20x20、アイコンのみのコンパクト チップの場合は 24x24 です。また、アイコンのみのユースケースでは、アイコンが中央揃えになるようにしました。(Iea2be) - 適用された
contentPadding
とautoCenteringPadding
の量をデベロッパーが把握できるように、ScalingLazyListLayoutInfo
にいくつかの新しいフィールドを追加しました。これらは、フリング / スクロールの計算時にデベロッパーにとって便利です(I7577b) - ダイアログの入出力遷移を実装しました。
showDialog
パラメータが追加され、ダイアログ自体で可視性を制御できるようになりました(これにより、ダイアログの表示 / 非表示の切り替え時に、ダイアログでイントロとエンディングのアニメーションを実行できます)。ユーザーがスワイプして閉じる操作でダイアログを終了すると、エンディング アニメーションは実行されません。また、最近追加されたSwipeToDismissBox
のオーバーロードに、状態のデフォルト値を追加しました。(I682a0) - i18n と a11y のサポートを強化するため、
ToggleChip
とSplitToggleChip
を変更し、toggleControl
スロットのデフォルト値がなくなるようにしました。また、SwitchIcon()->switchIcon()
、CheckboxIcon->checkboxIcon()
、RadioIcon()->radioIcon()
のメソッドが Icon ではなく ImageVector を返すようにToggleChipDefaults
を変更しました(@Composable を返さなくなったため、小文字で開始するように変更されています)。これにより、デベロッパーは適切なcontentDescription
セットで独自のIcon()
コンポーザブルを作成できます。(I5bb5b) SwipeDismissableNavHostState
パラメータをSwipeDismissableNavHost
に追加しました。これにより、ナビゲーション デスティネーションとして使用される画面で、エッジスワイプを使用できます。これは、SwipeToDismissBoxState
をホイスティングして、エッジスワイプを必要とする画面でSwipeDismissableNavHostState
とModifier.edgeSwipeToDismiss
の両方を初期化するために使用できるようになったためです。(I819f5、b/228336555)
バグの修正
- 必要に応じて曲線レイアウトを更新するようにします。(Ie8bfa、b/229079150)
- https://issuetracker.google.com/issues/226648931 のバグの修正(Ia0a0a、b/226648931)
- 不要な試験運用版アノテーションを削除しました(I88d7e)
バージョン 1.0.0-alpha20
2022 年 4 月 6 日
androidx.wear.compose:compose-foundation:1.0.0-alpha20
、androidx.wear.compose:compose-material:1.0.0-alpha20
、androidx.wear.compose:compose-navigation:1.0.0-alpha20
がリリースされました。バージョン 1.0.0-alpha20 に含まれる commit については、こちらをご覧ください。
新機能
SwipeToDismiss
にedgeSwipeToDismiss
修飾子を追加します。これにより、ビューポートの左端でのみswipeToDismiss
を有効にできるようになります。マップの 2D スクロールや、ページ間の水平方向のスワイプなど、画面の中央で水平方向のページングを処理する必要がある場合に使用します。(I3fcec、b/200699800)
API の変更
CurvedModifiers
の基本実装。これにより、曲線コンテンツをカスタマイズする方法の導入が可能になります(ただし、CurvedModifiers
はまだ提供されておらず、後でカスタム修飾子を作成する機能が利用できるようになります)(I9b8df)EdgeSwipe
修飾子のドキュメントとデフォルト値が更新され、わかりやすくなりました。(I6d00d)PageIndicator
スロットを Scaffold に追加します。PageIndicator
を Scaffold に直接追加することで、円形のデバイスで正しく表示されるようにします。(Ia6042)InlineSlider
および Stepper パラメータからデフォルトのアイコンを削除します。これにより、デベロッパーはローカライズとユーザー補助の要件にさらに注意を払うことができるようになります。デフォルトのアイコンの使用方法はデモとサンプルで示されています。(I7e6fd)- TimeText の先頭と末尾のパラメータ名を Start と End に置き換えました。(Iaac32)
onDismissed
パラメータでSwipeToDismissBox
オーバーロードが追加され、スワイプ操作の完了時にナビゲーション イベントをトリガーするという一般的な使用方法がサポートされるようになりました。(I50353、b/226565726)TimeText
の使用方法からExperimentalWearMaterialApi
アノテーションを削除しました(Ide520)ScalingLazyList/Column
のスコープと情報インターフェースは、外部のデベロッパーによる実装を想定していないため、シール済みとしてマークされています。これにより、バイナリに破壊的変更を加えることなく、今後新しいメンバーを追加できるようになります。(I7d99f)- 選択ツールに新しい
flingBehaviour
プロパティとPickerDefaults.flingBehaviour()
メソッドが追加され、RSB サポートの追加などのフリング動作の設定が可能になりました。PickerState
にScrollableState
インターフェースが実装されました。(Ib89c7)
バグの修正
- Wear Compose ライブラリの Android ランタイム(ART)のベースライン プロファイル ルールを更新します。ART では、デバイス上のプロファイル ルールを活用して、アプリの特定の部分を事前にコンパイルし、アプリケーションのパフォーマンスを改善できます。なお、これはデバッグ可能なアプリには影響しません。(Iaa8ef)
- ドキュメントを改善しました(I2c051)
バージョン 1.0.0-alpha19
2022 年 3 月 23 日
androidx.wear.compose:compose-foundation:1.0.0-alpha19
、androidx.wear.compose:compose-material:1.0.0-alpha19
、androidx.wear.compose:compose-navigation:1.0.0-alpha19
がリリースされました。バージョン 1.0.0-alpha19 に含まれる commit については、こちらをご覧ください。
API の変更
CurvedRow
の名前をCurvedLayout
に変更し、DSL 付きのスコープになるよう再構築しました。この DSL を使用すると、より複雑な曲線レイアウトを一連のネストされたcurvedRow
とcurvedColumn
(Row と Column と同等の曲線レイアウト)を使って指定できます。これらのレイアウト要素内では、curvedComposable
(@Composable を追加)、basicCurvedText
(基盤の曲線テキスト)、curvedText
(Wear マテリアル対応の曲線テキスト)の 3 つの要素を使用できます。(Ib776a)PositionIndicator
の側を構成可能に変更しました。基本の PositionIndicator の位置を End(レイアウト方向対応)、OppositeRsb(画面の回転を考慮し、自身を物理的な RSB の反対に位置付け)、または絶対値である Left と Right に設定できるようになりました。(I2f1f3)SwipeToDismissBox
の場合に、SwipeDismissTarget
.Original の名前をSwipeToDismissValue.Default
に変更し、SwipeDismissTarget.Dismissal
の名前をSwipeToDismissValue.Dismissed
に変更しました。また、SwipeToDismissBoxDefaults.BackgroundKey
とSwipeToDismissBoxDefaults.ContentKey
をそれぞれSwipeToDismissKeys.Background
、SwipeToDismissKeys.Content
に移動しました。(I47a36)- 複数の Picker があり、一度に 1 つの Picker のみが編集可能である画面の場合に、Picker に読み取り専用モードを追加しました。Picker が読み取り専用の場合は、現在選択されているオプションと、ラベル(指定されていた場合)が表示されます。(I879de)
ExperimentalWearMaterialApi
のスコープをModifier.swipeable
とSwipeableState
に制限するようSwipeToDismissBoxState
をリファクタリングし、内部で使用できるようにしました。SwipeToDismissBoxState
に、一般的なユースケースをサポートするようcurrentValue
、targetValue
、isAnimationRunning
、snapTo
のメンバーを追加しました。他のプロパティを利用できるようにする必要がある場合は、お知らせください。また、スワイプ オフセットがアンカーの丸め誤差内にある場合の、SwipeableState
の動作を修正しました。(I58302)
バグの修正
ScalingLazyColumn
のコンテンツをスクロールできるかどうかを検出するためのコードを簡素化し、修正しました(スクロールバーを表示するかどうかの判断に使用されます)。(I7bce0)- 複数の状態で使用して状態を切り替える場合の位置インジケーターのバグを修正しました。(I320b5)
- 最新の UX ガイダンスと一致するよう Wear OS 向け Compose のデフォルトのテーマ タイポグラフィ / フォントを更新しました。特に display1(40.sp)と display2(34.s)が以前の値より小さくなり、行の高さと行間隔に対しさまざまなその他のマイナー アップデートを加えました。(Ie3077)
- 閉じるようスワイプしたときのみモーションが発生し、逆方向ではまったく発生しないよう、
SwipeToDismissBox
に抵抗を追加しました。(Ifdfb9) - Wear マテリアル デザインの UX ガイドと一致するよう、
CircularProgressIndicator
関数のデフォルトのパラメータ値の一部を変更しました。Spinner / Indeterminant バージョンでは、size(40 -> 24.dp)、indicatorColor(primary -> onBackground)、trackColor transparency(30% -> 10%)、stroke width(4 -> 3dp)を更新しました。Progress / Determinate バージョンでは、trackColor transparency(30% -> 10%)を更新しました。(I659cc) - 最新の Wear マテリアル デザインの UX 仕様と一致するよう
ScalingLazyColumn
のデフォルトのスケーリング パラメータを更新しました。表示上は、この更新により、リストの中心に近いリスト項目からスケーリングが開始されますが、リストの端では以前よりもスケーリングが少なくなります。(Ica8f3) - アニメーションの終了を改善するために
ScalingLazyColumnDefaults.snapFlingBehavior
を調整しました。(If3260)
バージョン 1.0.0-alpha18
2022 年 3 月 9 日
androidx.wear.compose:compose-foundation:1.0.0-alpha18
、androidx.wear.compose:compose-material:1.0.0-alpha18
、androidx.wear.compose:compose-navigation:1.0.0-alpha18
がリリースされました。バージョン 1.0.0-alpha18 に含まれる commit については、こちらをご覧ください。
API の変更
- PositionIndicator にいくつかの改善を加えました。ShowResult を PositionIndicatorVisibility に名称変更しました。不要な再計算を避けるため、パフォーマンスを改善しました(Iaed9d)
SplitToggleChip
の推奨色を変更しました。SplitToggleChip のチェックをオンまたはオフにしたときの背景色を無地一色とし、コンポーネントがチェックされているかどうかを ToggleControl の色で簡単に判別できるようにしました。新しいカラーパターンをサポートするため、新たにToggleDefaults.splitToggleChipColors()
を追加しました。また、splitBackgroundOverlayColor を削除し、toggleChipColors()
メソッドを簡素化しました(I7e66e)ScalingLazyListItemInfo
に unadjustedSize を追加しました。これは、浮動小数点数の精度の点で、スケーリングしたサイズとスケーリング ファクタで元のアイテムサイズを計算するのが安全ではないためです。(I54657、b/221079441)HorizontalPageIndicator
を追加しました。これは、ページの総数と選択されているページを表します。デバイスの形状に応じて直線または曲線にできます。また、インジケーターの形状をカスタマイズして、各インジケーターの視覚的な表示方法を定義できます。(Iac898)PickerState
を更新し、numberOfOptions を更新できるようにしました。これにより、選択した月によって月の日数が変わるDatePicker
などのユースケースに対応できます。これに伴い、PickerState のコンストラクタ パラメータが initialNumberOfOptions に変更されました。(Iad066)PositionIndicator
がスクロールバーである場合に、スクロールできないときは非表示になるようにしました。(Id0a7f)- Scaffold との整合性を保つため、全画面の Dialog コンポーネントに
PositionIndicator
とVignette
が表示されるようにしました。また、Column
に代わってScalingLazyColumn
を使用することになったため、Dialog コンテンツはScalingLazyListScope
に含めることとなりました(通常、アイテム { /* content */ } で囲む必要があります)。これに伴い、Dialog で verticalArrangement パラメータがサポートされました。(Idea13) - マテリアル デザインに合わせて
ToggleChip
とSplitToggleChip
の toggleIcon プロパティの名前を toggleControl に変更し、API をナビゲーションしやすくしました。(If5921、b/220129803) - Wear のマテリアル テーマ Typology.Caption3 に、新しいエントリ caption3 を追加しました。caption3 は、法的文書のような非常に長い文章に使用する小さなフォントです。(I74b13、b/220128356)
バグの修正
- 表示したときに、スナップのアニメーションが停止します。(Idb69d)
- PositionIndicator の変更をアニメーション化しました。(I94cb9)
- UI / UX のフィードバックに基づいて
ScalingLazyColumn
の autoCentering を変更し、インデックスがScalingLazyListState.initialCenterItemIndex
以上の複数のアイテムを、ビューポートの中央に完全にスクロールするために必要なスペースのみが提供されるようにしました。これにより、最初に中央に配置したアイテムの周囲に 1 つまたは 2 つのアイテムを配置しても、中央にスクロールされなくなりました。これに伴い、ScalingLazyColumn
を autoCentering しても、initialCenterItemIndex/initialCenterItemScrollOffset
より上にはスクロールできなくなりました。(I22ee2) - 日付選択ツールのデモを追加し、選択ツールが表示されるまで initialInitialOptionOption が適用されていなかった
PickerState
のバグを修正しました。(Id0d7e) - 円形の画面に幅の広い
ScalingLazyColumn
アイテムを表示する際のクリッピングを減らすため、水平方向のデフォルトのコンテンツ パディングを 8 dp から 10 dp に増やしました。(I0d609) - スクロール時に
PositionIndicator
が表示されることを確認しました。(Ied9a2)
バージョン 1.0.0-alpha17
2022 年 2 月 23 日
androidx.wear.compose:compose-foundation:1.0.0-alpha17
、androidx.wear.compose:compose-material:1.0.0-alpha17
、androidx.wear.compose:compose-navigation:1.0.0-alpha17
がリリースされました。バージョン 1.0.0-alpha17 に含まれる commit については、こちらをご覧ください。
新機能
ScalingLazyColumn
で使用できるスナップのサポートを追加しました。flingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state)
を設定すると、スナップのサポートが有効になります。(I068d3、b/217377069)- 時刻の形式(24 時間形式または 12 時間形式)を選択する際に使用される選択ツールのデモを追加しました。(Ie5552)
API の変更
- 正方形のデバイスでの
TimeText
のカスタム フォントとスタイルに関する問題を修正しました(Iea76e) ScalingLazyListLayoutInfo
に、LazyListLayoutInfo
の各プロパティと一致するreverseLayout
、viewportSize
、orientation プロパティが追加されました(I4f258、b/217917020)ScalingLazyColumn
に、LazyList
のプロパティと一致するuserScrollEnabled
プロパティが追加されました(I164d0、b/217912513)- 選択ツールはデフォルトで上下にグラデーションが表示されるようになりました(Iab92a)
バグの修正
- 親のスペースをすべて埋め尽くすことのないように
ScalingLazyColumn
を変更しました。代わりに、コンテンツのサイズからサイズを取得します。これはLazyColumn
の動作と同じです。以前の動作に戻す場合は、Modifier.fillMaxWidth()/width()/widthIn()
をScalingLazyColumn
に渡してください(I51bf8) - ナビゲーションのバックスタックが空の場合にトリガーされる
SwipeDismissableNavHost.kt
の例外メッセージを改善しました(I1b1dc)
バージョン 1.0.0-alpha16
2022 年 2 月 9 日
androidx.wear.compose:compose-foundation:1.0.0-alpha16
、androidx.wear.compose:compose-material:1.0.0-alpha16
、androidx.wear.compose:compose-navigation:1.0.0-alpha16
がリリースされました。バージョン 1.0.0-alpha16 に含まれる commit については、こちらをご覧ください。
新機能
CircularProgressIndicator
を追加しました。進行状況インジケーターに、プロセスの長さや不特定の待ち時間が表示されます。全画面で使用する場合、TimeText または他のコンポーネントのギャップ(カットアウト)をサポートします。(Iab8da)
API の変更
- 選択ツールに
flingBehavior
パラメータが追加されました。デフォルト値では、スクロールまたはフリングを行ったとき、最も近いオプションにスナップします。(I09000) - InlineSlider と Stepper 用の整数 API を追加しました。(I1b5d6)
バグの修正
ScalingLazyListState
のデフォルトの initialCenterItemIndex を 0 から 1 に変更しました。つまり、状態の構築でScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =
)
にオーバーライドされない限り、初期化時に 2 番目のリスト項目(index == 1)がビューポートの中央に配置され、1 番目のリスト項目(index == 0)がその前に配置されます。これにより、ほとんどのビューポートがリスト項目で埋まるため、すぐに使えるデフォルトの視覚効果が向上します。(I0c623、b/217344252)- 一部のサイズを縮小している場合でも多くのリスト項目が表示されるように提供されている
ScalingLazyColumn
のデフォルトのextraPadding
を、10% から 5% に減らしました。これにより、ビューポートに表示されない可能性のある余分なリスト項目が作成されなくなります。標準以外の scaleParams が使用されている場合(より極端なスケーリングなど)、デベロッパーはviewportVerticalOffsetResolver
を使用して余分なパディングを調整できます。(I76be4) - 正方形のデバイスで TimeText が複数行にわたる問題を修正しました。(Ibd3fb)
- 親のスペースをすべて埋め尽くすことのないように
ScalingLazyColumn
を変更しました。代わりに、コンテンツのサイズからサイズを取得します。これはLazyColumn
の動作と同じです。以前の動作に戻す場合は、Modifier.fillMaxSize()
をScalingLazyColumn
に渡してください(注: この変更は不完全であり、次のアルファ版リリースにおける後続の変更で対処される予定です)。(I3cbfa)
バージョン 1.0.0-alpha15
2022 年 1 月 26 日
androidx.wear.compose:compose-foundation:1.0.0-alpha15
、androidx.wear.compose:compose-material:1.0.0-alpha15
、androidx.wear.compose:compose-navigation:1.0.0-alpha15
がリリースされました。バージョン 1.0.0-alpha15 に含まれる commit については、こちらをご覧ください。
API の変更
ScalingLazyColumn
に新しいプロパティautoCentering
を追加しました。このプロパティが true(デフォルト)の場合、すべての項目(最初と最後の項目を含む)をスクロールして、リストのビューポートの中央に表示できます。なお、自動中央揃えを使用する場合は、垂直方向のコンテンツ パディングを 0.dp に設定することをおすすめします。autoCentering と垂直方向のコンテンツ パディングの両方が指定された場合、両方によって最初のリスト項目の前と最後のリスト項目の後で追加のスペースが利用可能になり、スクロール可能なスペースが増えます。(I2a282、b/214922490)- 他のコンテンツを覆う全画面ダイアログを任意のコンポーザブルがトリガーできるようにする
Dialog
コンポーネントを追加しました。このダイアログは、表示されると「スワイプして閉じる」機能をサポートし、スワイプ操作中にその親のコンテンツをバックグラウンドで表示します。ダイアログのコンテンツはAlert
またはConfirmation
(以前のコンポーネントAlertDialog
およびConfirmationDialog
から名前が変更されました)であると想定されます。Alert
、Confirmation
、Dialog
はすべてandroidx.wear.compose.material.dialog
パッケージ内にあります。Alert と Confirmation はナビゲーション デスティネーションとして使用できます。また、必要に応じて Alert および Confirmation パラメータに ColumnScope を追加しました。(Ia9014) - Compose for Wear OS のマテリアル テーマ カラーから
onSurfaceVariant2
を削除し、ライブラリでの使用をonSurfaceVariant
に置き換えました。(Icd592) PickerState
でオプションをプログラムで選択するメソッドを追加し、最初に選択したオプションをPickerState
の作成時にも指定できるようにしました。(I92bdf)ScalingLazyColumn
のフリング動作をカスタマイズするためのサポートを追加しました。(I1ad2e、b/208842968)Wear.Compose.Navigation
ライブラリにNavController.currentBackStackEntryAsState()
を追加しました。(If9028、b/212739653)- 回転するサイドボタンを備えた Wear デバイス用に
Modifier.onRotaryScrollEvent()
とModifier.onPreRotaryScrollEvent()
を追加しました。(I18bf5、b/210748686)
バージョン 1.0.0-alpha14
2022 年 1 月 12 日
androidx.wear.compose:compose-foundation:1.0.0-alpha14
、androidx.wear.compose:compose-material:1.0.0-alpha14
、androidx.wear.compose:compose-navigation:1.0.0-alpha14
がリリースされました。バージョン 1.0.0-alpha14 に含まれる commit については、こちらをご覧ください。
新機能
デベロッパーが特定のリスト項目へのスクロールを制御し、またリスト項目やオフセットの初期設定を行える、複数のメソッドを
ScalingLazyListState
に追加しました。この変更の一環として、ScalingLazyList が、ビューポートの開始点ではなく中心方向を向くように変更されています。
中心(
ScalingLazyListAnchorType.ItemCenter
)またはEdge
(ScalingLazyListAnchorType.ItemStart
)をビューポートの中心線に揃えるかどうかを制御する、新しいプロパティanchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter
がScalingLazyList
に追加されました。その結果
ScalingLazyListItemInfo.offset
とScalingLazyListItemInfo.adjustedOffset
が変更され、リスト項目の位置とリストのanchorType
の両方に関する項目のオフセットが反映されるようになりました。たとえば、ScalingLazyColumn
のanchorType
がItemCenter
で、リスト項目の中心がビューポートの中心線にある場合、オフセットは0
になります。新しいメソッドは
scrollTo
、animatedScrollTo
、centerItemIndex
、centerItemOffset
です。 (I61b61)[戻る] ボタンを押すとナビゲーション階層の前のレベルに移動できるように、[戻る] ボタンハンドラを
SwipeDismissableNavHost
に追加しました。(I5b086、b/210205624)
バージョン 1.0.0-alpha13
2021 年 12 月 15 日
androidx.wear.compose:compose-foundation:1.0.0-alpha13
、androidx.wear.compose:compose-material:1.0.0-alpha13
、androidx.wear.compose:compose-navigation:1.0.0-alpha13
がリリースされました。バージョン 1.0.0-alpha13 に含まれる commit については、こちらをご覧ください。
API の変更
RangeIcons
を内部化しました(InlineSlider
とStepper
によって内部で参照されます)。(I927ec)
バグの修正
SwipeDismissableNavHost
がCREATED
ライフサイクル状態になる前に Compose 階層にデスティネーションを追加するとIllegalStateException
が発生する問題を修正しました。この修正は、navigation-compose
の依存関係を2.4.0-beta02
以降にアップデートするための前提条件でした。(I40a2b、b/207328687)Wear Compose ライブラリ内のドローアブル リソースを取得するための Drawables 列挙型クラスを追加し、リフレクションが不要になりました。これにより、
minifyEnabled=true
またはshrinkResources=true
のときにライブラリ ドローアブルが削除されるバグを修正しました。(Ib2a98)Wear Compose の
Stepper
のテストを追加しました。(I2d03a)Wear Compose Navigation の
SwipeDismissableNavHost
のサンプルを追加しました。(I85f06)
バージョン 1.0.0-alpha12
2021 年 12 月 1 日
androidx.wear.compose:compose-foundation:1.0.0-alpha12
、androidx.wear.compose:compose-material:1.0.0-alpha12
、androidx.wear.compose:compose-navigation:1.0.0-alpha12
がリリースされました。バージョン 1.0.0-alpha12 に含まれる commit については、こちらをご覧ください。
新機能
Stepper コンポーネントが追加され、ユーザーが値の範囲から選択できるようになりました。Stepper はフルスクリーン コントロールです。上に増加ボタン、下に減少ボタンがあり、中央にスロット(チップまたはテキストのいずれかが入ることを想定)があります。ボタンアイコンは、必要に応じてカスタマイズできます(I625fe)。
ダイアログを表示するための 2 つの新しいコンポーザブルが追加されました。 AlertDialog はユーザーからの応答を待機し、タイトル、アイコン、メッセージとともに a)シンプルな Positive と Negative の選択用の 2 つのボタン、または b)より柔軟な選択に対応するための縦に積み重ねられたチップまたは切り替えチップを表示します。 ConfirmationDialog はタイムアウトとともに確認応答を表示します。このシンプルなダイアログには、タイトル用と(アニメーション)アイコン用のスロットがあります(Ic2cf8)。
API の変更
- ダイアログの候補時間の値に単位(ミリ秒)を追加しました(I09b48)。
バージョン 1.0.0-alpha11
2021 年 11 月 17 日
androidx.wear.compose:compose-foundation:1.0.0-alpha11
、androidx.wear.compose:compose-material:1.0.0-alpha11
、androidx.wear.compose:compose-navigation:1.0.0-alpha11
がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください。
新機能
- スクロール リストからユーザーがアイテムを選択できる選択ツール コンポーネントを追加しました。デフォルトで、選択可能なアイテムのリストは両方向に「無限」に繰り返され、横から見ると回転する円柱のような印象を与えます。今後のリリースで、スワイプやフリングの後の値にスナップする機能と、現在の値に設定 / スクロールする関数を PickerState に追加する機能という 2 つが追加される予定です。(I6461b)
API の変更
- 親コンテナのサイズに基づいてリストアイテムのサイズを設定できるように、ScalingLazyItemScope と新しい修飾子 fillParentMaxSize / fillParentMaxWidth / fillParentMaxHeight を追加しました。アイテムは、親のサイズの全部または一部を埋めるように設定できます。これにより、LazyRow/Column ですでに利用可能な機能が公開されます。(I4612f)
- アイテムがキーを持つことができるように、ScalingLazyColumn のサポートを追加しました。また、配列やリストからアイテムを追加するための便利なメソッドを追加しました。(Ic1f89)
バグの修正
- TimeText のその他の例(I8cb64)
バージョン 1.0.0-alpha10
2021 年 11 月 3 日
androidx.wear.compose:compose-foundation:1.0.0-alpha10
、androidx.wear.compose:compose-material:1.0.0-alpha10
、androidx.wear.compose:compose-navigation:1.0.0-alpha10
がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。
新機能
wear compose の InlineSlider を追加しました。InlineSlider を使用すると、ユーザーは値の範囲から選択できます。選択範囲は、範囲の最小値と最大値の間にバーとして表示され、ユーザーはそこから値を 1 つ選択できます。(If0148)
WearOS Codelab の新しい Compose をご確認ください。
API の変更
- Macrobenchmark の
minSdkVersion
が23
になりました。(If2655)
バグの修正
- SideEffect の SwipeDismissableNavHost での遷移処理を更新しました。(I04994、b/202863359)
- SwipeDismissableNavHost での遷移処理を更新しました。(I1cbe0、b/202863359)
バージョン 1.0.0-alpha09
2021 年 10 月 27 日
androidx.wear.compose:compose-foundation:1.0.0-alpha09
、androidx.wear.compose:compose-material:1.0.0-alpha09
、androidx.wear.compose:compose-navigation:1.0.0-alpha09
がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。
新機能
- Wear OS で Compose のデベロッパー プレビューをリリースしました。詳しくは、メイン コンポーザブルと、それらの使用を開始するための参考資料へのリンクを確認できるブログ投稿をご覧ください。
API の変更
- Wear のマテリアル デザイン カラーテーマですべての色をカスタマイズできるデベロッパー向けのサポートを追加しました。(I4759b、b/199754668)
バグの修正
- 状態を永続化する SwipeToDismissBox サンプルを追加しました。(Ibaffe)
- CurvedText、TimeText、SwipeToDismissBox の KDocs から、developer.android.com ガイドへのリンクを追加しました。(I399d4)
- 現在のデスティネーションがない(NavGraph が wear.compose.navigation.composable ユーティリティ関数でビルドされていないことを示す)場合、SwipeDismissableNavHost がスローされるようになりました。(I91403)
- TimeText でのタイムソースの使用方法に関するドキュメントと例を追加しました。(I4f6f0)
バージョン 1.0.0-alpha08
2021 年 10 月 13 日
androidx.wear.compose:compose-foundation:1.0.0-alpha08
、androidx.wear.compose:compose-material:1.0.0-alpha08
、androidx.wear.compose:compose-navigation:1.0.0-alpha08
がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。
API の変更
- AppCard と TitleCard の
body
プロパティの名前をcontent
に変更し、プロパティ リストの末尾に移動したことで、後置ラムダとして提供できるようなりました。また、新しいスロット名との整合性を保つため、bodyColor
の名前をcontentColor
に変更しました。(I57e78)
バグの修正
- ボタン、カード、チップ、テーマ、位置インジケーター、遅延列コンポーネントのスケーリングについて、KDocs の developer.android.com ガイドへのリンクを追加しました。(I22428)
- WearOS SwipeToDismissBox がスワイプを処理しないことがある問題を修正しました。(I9387e)
- Button、CompactButton、Chip、CompactChip、AppCard、TitleCard、ToggleButton、ToggleChip、SplitToggleChip のサンプルを追加しました(Iddc15)
- Card、Chip、ToggleChip、TimeText、ScalingLazyColumn の Microbenchmark パフォーマンス テストを追加しました。(If2fe9)
バージョン 1.0.0-alpha07
2021 年 9 月 29 日
androidx.wear.compose:compose-foundation:1.0.0-alpha07
、androidx.wear.compose:compose-material:1.0.0-alpha07
、androidx.wear.compose:compose-navigation:1.0.0-alpha07
がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。
新機能
- マテリアルに CurvedText コンポーネントを追加しました。これにより、デベロッパーは円の曲率に沿って(通常は円形の画面の端)、曲線テキストを簡単に記述できます。(I19593)
API の変更
- TimeText のテストを追加しました(Idfead)
- ArcPaddingValues をインターフェースに変換します。(Iecd4c)
- SwipeToDismissBox にアニメーションを追加しました(I9ad1b)
- SwipeToDismissBox API に hasBackground パラメータを追加し、表示するバックグラウンド コンテンツがない場合にスワイプ操作を無効にできるようにしました。(I313d8)
rememberNavController()
がオプションのNavigator
インスタンスのセットを受け取るようになりました。これらのインスタンスは、返されるNavController
に追加され、Accompanist Navigation Material の Navigator など、オプションの Navigator のサポートを強化します。(I4619e)- navigation-common の NamedNavArgument を参照し、wear.compose.navigation からコピーを削除しました。(I43af6)
バグの修正
- 小型デバイスでの CurvedRow のテストの不安定性を修正しました。(If7941)
- コンテンツ更新時の CurvedRow の予想されるちらつきを修正し、曲線行が再測定されるようにしました。(Ie4e06)
- ChipDefaults.gradientBackgroundChipColors() を UX 仕様の変更に合わせて更新しました。グラデーションは、MaterialTheme.colors.surface(アルファ 75%)の背景に、MaterialTheme.colors.primary(アルファ 32.5%)で始まり、MaterialTheme.colors.surface(アルファ 0%)で終了するようになりました。(Id1548)
- 最新の Wear マテリアル デザインの UX 仕様ガイダンスに合わせて、選択された状態の ToggleChip の色を更新しました。選択されると、ToggleChip のグラデーションの背景は、MaterialTheme.color.surface(アルファ 75%)の背景に、左上の MaterialTheme.color.surface(アルファ 0%)で始まり、右下の MaterialTheme.color.primary(アルファ 32%)で終了するようになりました。これにより ToggleChip のオンとオフの違いは、よりわずかになっています。(Idd40b)
バージョン 1.0.0-alpha06
2021 年 9 月 15 日
androidx.wear.compose:compose-foundation:1.0.0-alpha06
、androidx.wear.compose:compose-material:1.0.0-alpha06
、androidx.wear.compose:compose-navigation:1.0.0-alpha06
がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
- PositionIndicator(スクロールやボリュームなど)の位置、を処理するための構造を提供するトップレベルのアプリ コンポーザブル Scaffold、時刻とアプリケーションのステータスを表示する画面上部の領域を追加し、また画面の上下端をぼかすための周辺減光をサポートしました。Scaffold の主なエリアは、アプリケーション コンテンツを配置する場所です。(I5e0bf)
- Wear Compose 用の TimeText 実装を追加しました(I5654c)
Wear Compose Navigation ライブラリ
Wear Compose と Androidx Navigation ライブラリを統合した Wear Compose Navigation ライブラリの最初のリリースを追加しました。これにより、アプリ内の宛先として @Composable 関数間を簡単に移動できます。
この初回リリースで提供されるものは以下のとおりです。
- ナビゲーション グラフをホストし、スワイプ操作で戻る方向の移動を行う
SwipeDismissableNavHost
コンポーザブル - ナビゲーション グラフの作成を支援する
NavGraphBuilder.composable
拡張機能 - 状態をホイスティングできるようにする
rememberSwipeDismissableNavController()
- ナビゲーション グラフをホストし、スワイプ操作で戻る方向の移動を行う
画面を 2 つ作成し、その画面間を移動する場合の使用例:
val navController = rememberSwipeDismissableNavController() SwipeDismissableNavHost( navController = navController, startDestination = "start" ) { composable("start") { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize(), ) { Button(onClick = { navController.navigate("next") }) { Text("Go") } } } composable("next") { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize(), ) { Text("Swipe to go back") } } }
Wear Compose Navigation は個別のライブラリとしてパッケージ化されているため、独自の手巻きナビゲーションを実装するシンプルな WearCompose アプリは、Androidx Navigation ライブラリに依存する必要がありません。
API の変更
- 背景とコンテンツのキー ID を設定することで
rememberSaveable
をサポートするようにSwipeDismissableNavHost
を更新しました。(I746fd) - LazyListState を処理できる PositionIndicator アダプタを追加しました。(I21b88)
- rememberSaveable をサポートするように SwipeToDismissBox を更新しました。(Ie728b)
- ScalingLazyColumn に reverseLayout のサポートを追加しました。これにより、スクロールとレイアウトの方向を逆にすることができます。(I9e2fc)
performGesture
とGestureScope
が非推奨になりました。それぞれperformTouchInput
とTouchInjectionScope
に置き換えられました。(Ia5f3f、b/190493367)- VignetteValue の名前を VignettePosition に変更し、VignetteValue.Both の名前を VignettePosition.TopAndBottom に変更しました。(I57ad7)
- 今後 ScalingLazyRow implementation を追加することになった場合に備えて、ScalingLazyColumnState の名前を ScalingLazyListState に、ScalingLazyColumnItemInfo を ScalingLazyListItemInfo に、ScalingLazyColumnLayoutInfo を ScalingLazyListLayoutInfo に、ScalingLazyColumnScope を ScalingLazyListScope に変更しました。(I22734)
バグの修正
- アイコンもラベルも指定されていない場合の影響について説明するように、CompactChip のドキュメントを更新しました。(I4ba88)
- Wear カード コンポーネントに以下の調整を行いました。(I6b3d0)
- タイトルと本文の間の TitleCard の間隔を 8.dp から 2.dp に減らしました。
- TitleCard ヘッダーのフォントを body から title3 に変更しました。
- カードの背景のグラデーションを、背景が暗くなるように変更しました。
バージョン 1.0.0-alpha05
2021 年 9 月 1 日
androidx.wear.compose:compose-foundation:1.0.0-alpha05
と androidx.wear.compose:compose-material:1.0.0-alpha05
がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
API の変更
- ArcPaddingValues が @Stable としてマークされました(I57deb)
- ScalingLazyColumnState が ScrollableState インターフェースを実装したことで、デベロッパーはプログラムからアクセスしてコンポーネントをスクロールできるようになりました。(I47dbc)
バグの修正
- UX 仕様の更新に合わせて、Icon と Text in Chip と ToggleChip の間隔を縮小しました。(I83802)
バージョン 1.0.0-alpha04
2021 年 8 月 18 日
androidx.wear.compose:compose-foundation:1.0.0-alpha04
と androidx.wear.compose:compose-material:1.0.0-alpha04
がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
- SwipeToDismissBox とスワイプ可能修飾子(左から右へスワイプして閉じる操作のサポートに使用可能)を追加しました。これは、Navigation コンポーネントから独立していますが、ある画面を終了して別の画面に移動するために使用することが想定されています。「スワイプして閉じる」のデモを行う統合テストを追加しました。(I7bbaa)
- スケーリングが適用された後に ScalingLazyColumn でのアイテムの実際の位置とサイズをデベロッパーが把握できるように、ScalingLazyColumnItemInfo インターフェースと ScalingLazyColumnLayoutInfo インターフェースを ScalingLazyColumnState クラスに追加しました。また、「上位」コンテンツのパディングが ScalingLazyColumn に適用された場合のスケーリングの計算方法に関するバグも修正しました。(I27c07)
API の変更
- 曲線テキストのスタイル設定の Option を指定するための CurvedTextStyle クラスを追加しました。TextStyle とよく似ていますが、色、fontSize、背景のみをサポートするようになりました。今後、さらに多くのスタイル設定オプションが追加される予定です。(I96ac3)
- スケーリングが適用された後に ScalingLazyColumn でのアイテムの実際の位置とサイズをデベロッパーが把握できるように、ScalingLazyColumnItemInfo インターフェースと ScalingLazyColumnLayoutInfo インターフェースを ScalingLazyColumnState クラスに追加しました。また、「上位」コンテンツのパディングが ScalingLazyColumn に適用された場合のスケーリングの計算方法に関するバグも修正しました。(I27c07)
SwipeToDismissBox
API の一部であるSwipeDismissTarget
列挙型に@ExperimentalWearMaterialApi
を追加しました。(I48b5e)
バグの修正
- SwipeToDismissBox のテスト資料を追加しました(I9febc)
バージョン 1.0.0-alpha03
2021 年 8 月 4 日
androidx.wear.compose:compose-foundation:1.0.0-alpha03
と androidx.wear.compose:compose-material:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれるコミットについては、こちらをご覧ください。
API の変更
- CurvedText コンポーネントを追加しました。これにより、デベロッパーは円の湾曲(通常は円形画面の端にある)に沿ってテキストを簡単に入力できます(Id1267)
- 背景画像にスクリムが描画されていることがはっきりとわかるよう、
CardDefaults.imageBackgroundPainter()
の名前をCardDefaults.imageWithScrimBackgroundPainter()
に変更しました。(I53206) - Wear マテリアルのリスト コンポーネントを提供する ScalingLazyColumn コンポーネントを追加しました。これにより、コンポーネントの端に向かってスケーリングするとリスト コンテンツがサイズ縮小され透明になる魚眼ビューが提供されます。(I7070c)
バグの修正
- UX 仕様の更新に応じて、AppCard の appName コンテンツのデフォルト色が変更されました。appName のデフォルト色は
MaterialTheme.colors.onSurfaceVariant
になりました。また、タイトル スロットに欠落しているパラメータのドキュメントの説明を追加しました。(Ic4ad1)
バージョン 1.0.0-alpha02
2021 年 7 月 21 日
androidx.wear.compose:compose-foundation:1.0.0-alpha02
と androidx.wear.compose:compose-material:1.0.0-alpha02
がリリースされました。バージョン 1.0.0-alpha02 に含まれるコミットについては、こちらをご覧ください。
新機能
- 円弧の中にコンポーザブルをレイアウトする新しいクラス CurvedRow を追加しました。(I29941)
- アプリ内で使用する新しいタイプのカード(TitleCard)を追加し、コンテンツを強調するために背景としてカードに追加できる画像の設定のサポートも追加しました。(I53b0f)
API の変更
- CurvedRow に放射状整列(行の垂直方向の整列と似た機能)のサポートを追加しました。(Id9de5)
- 円弧の中にコンポーザブルをレイアウトする新しいクラス CurvedRow を追加しました。(I29941)
- アプリ内で使用する新しいタイプのカード(TitleCard)を追加し、コンテンツを強調するために背景としてカードに追加できる画像の設定のサポートも追加しました。(I53b0f)
- デベロッパーが ToggleChip と SplitToggleChip を簡単に構成できるようにするため、ToggleChipDefaults に切り替えアイコン(チェックボックス、スイッチ、ラジオボタン)を追加しました。(I7b639)
- チップの開始および終了コンテンツ パディングが更新され、チップにアイコンが存在するかどうかにかかわらず、常に 14.dp になりました(以前はアイコンが存在する場合は 12.dp、アイコンが存在しない場合は 14.dp でした)。(I34c86)
バグの修正
- CurvedRow のテストを追加しました。(I93cdb)
- Wear Compose の依存関係を Compose 1.0.0-rc01 に関連付けました。(Ie6bc9)
- カードとチップにおける背景画像のペイントの処理を変更し、画像の比率を維持するために画像が引き伸ばされるのではなく切り抜かれるようにしました。(I29b41)
- Button と ToggleButton のデモと統合テストを追加しました。(5e27ed2)
- imageBackgroundChip のコンテンツの色をカバーするため、チップのテストを追加しました。(Ia9183)
バージョン 1.0.0-alpha01
2021 年 7 月 1 日
androidx.wear.compose:compose-foundation:1.0.0-alpha01
と androidx.wear.compose:compose-material:1.0.0-alpha01
がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
Wear Compose は、Wear OS ウェアラブル用にマテリアル デザインを拡張した Wear マテリアル デザインをサポートする、Compose ベースの Kotlin ライブラリです。この最初のアルファ版リリースには、次のものを備えた初期段階の機能実装が含まれています。
- マテリアル テーマ - このライブラリから使用されるコンポーネント全体の色、タイポグラフィ、図形を構成します。
- Chip、CompactChip - チップは楕円形をしており、アイコン、ラベル、セカンダリ ラベルのコンテンツを取得するためのバリエーションがあります。
- ToggleChip、SplitToggleChip - ラジオボタンやチェックボックスなど、2 つの状態を切り替えるアイコンのスロットを含む特別なタイプのチップです。また、SplitToggleChip には 2 つ(クリック可能と切り替え可能)のタップ可能な領域があります。
- Button、CompactButton - ボタンは円形をしており、アイコン用の単一のコンテンツ スロットか、最小限のテキスト(最大 3 文字)を備えています。
- ToggleButton - アクションのオン / オフを切り替えるボタンで、アイコン用の単一のスロットか、最小限のテキスト(最大 3 文字)を備えています。
- Card、AppCard - 角が丸い四角形をしており、アプリアイコン、時間、タイトル、本文などのコンテンツのスロットを提供します。
将来のリリースでは、ウィジェット セットが拡張され、Wear マテリアル デザイン選択ツール、スライダー、リスト、ページ インジケーター、ダイアログ、スクロール RSB インジケーター、トーストなどのサポートが追加される予定です。
さらに、その他のウェアラブル固有の機能(曲線レイアウトやテキストなど)のサポートと、デベロッパーがウェアラブル アプリ / オーバーレイを簡単に構築するための土台が提供されます。
Wear Compose マテリアルは、ウェアラブルをターゲットにしているとはいえ、Compose マテリアルと同じ原則に沿ってデザインされています。ウェアラブル デバイス用の開発では、Compose マテリアル ライブラリの代わりに、Wear Compose マテリアル ライブラリを使用してください。
この 2 つの「マテリアル」ライブラリは相互排他的であると見なす必要があり、同じアプリ内に混在させてはなりません。Compose マテリアル ライブラリを依存関係に含めてしまうのは、a)Wear Compose マテリアル ライブラリにコンポーネントが不足している場合、または b)Google がウェアラブル デバイスでの使用を推奨していないコンポーネントをアプリで使用している場合のどちらかです。a)に該当する場合は、必要なコンポーネントを Google にお知らせください。