wear protolayout

  
このライブラリを使用すると、一連の UI レイアウトと UI 以外の式をリモート サーフェスでレンダリング/評価できます。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2025 年 9 月 24 日 1.3.0 - - 1.4.0-alpha01

依存関係の宣言

wear-protolayout への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation "androidx.wear.protolayout:protolayout-expression:1.3.0"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.3.0"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.3.0"
}

Kotlin

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.3.0")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.3.0")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.3.0")
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.4

バージョン 1.4.0-alpha01

2025 年 9 月 24 日

androidx.wear.protolayout:protolayout-*:1.4.0-alpha01 がリリースされました。バージョン 1.4.0-alpha01 には、これらの commit が含まれています。

新機能

  • タイルが表示されるときに要素をフェードインさせる LayoutModifier のヘルパー メソッドを追加しました。(I38531b/390345969
  • 自動リソース登録も行う M3 MaterialScope のコンセプトをサポートするために materialScopeWithResources を追加しました。その中で、画像(backgroundImage avatarImage とアイコン)用の新しいヘルパー メソッドを追加しました。これを使用すると、onTileResourceRequest でリソースを手動で登録する必要がなくなります。(I525bdb/428692714
  • ProtoLayoutScope で使用し、リソースを自動的に登録するための ImageImageResourcesProtoLayout Kotlin ヘルパー。(Iada82b/430584304
  • 1 つの Lottie アニメーションのカスタマイズで許可される Lottie プロパティの数を取得するゲッターを追加しました。(I73733b/436532706
  • AndroidLottieResourceByResId に API を追加して、プロパティで Lottie アニメーションをカスタマイズできるようにしました。また、スロット ID を指定した色でテーマ設定スロットのプロパティを作成する API を追加しました。(I301b3b/423581481
  • クリック アクションとして PendingIntent を受け入れるためのプロバイダ API を追加しました(I01978b/433802488
  • Image.Builder - setImageResource に新しい API を追加して、onTileResourcesRequest のマッピングに登録することなく、onTileRequest の Image にリソース オブジェクトを直接設定します。(Ifa69ab/428693523
  • Tiles でのリソース処理の改善に備えて、ProtoLayoutScope のコンセプトを追加しました。(I132ceb/428692423
  • ProtoLayout Material3 MaterialScopeContext フィールドを公開するようになり、スコープ内のメソッドで、渡す必要なく使用できるようになりました。(I0e5ccb/414559956
  • 見出しのセマンティック API を公開(I75299b/413653475
  • Arc/ArcLine/ArcText/DashedArcLine で使用するために ARC_DIRECTION_* 定数を公開します。(I83959b/427556439

API の変更

  • onTileResourcesRequest のオーバーライドの必要性をなくす Image.Builder(ProtoLayoutScope) API と Image.Builder.setImageResource API で利用可能な新しい自動リソース登録 API を優先して、Image.Builder() メソッドと Image.Builder.setResourceId メソッドを非推奨にしました。(I7bfe6b/432758526
  • ProtoLayoutScope を作成するための API を制限付きから公開に移動。ただし、システムですでに処理されている通話には使用しないでください。(I1d8e8b/432758251

バグの修正

  • ProtoTilesPendingIntent をサポートするための実装を追加しました(I38167b/430610429
  • invalidateLayout メソッドを追加します。(Ief898
  • デフォルトの minSdk を API 21 から API 23 に移行(Ibdfcab/380448311b/435705964b/435705223
  • ImageResourcehashCode メソッドと equals メソッドが追加されました。(I650eeb/428692423b/428693523
  • 新しい proto メッセージ PendingIntentAction とそのラッパー ビルダーを追加(Ie2acab/427643502
  • ZoneId インスタンスの作成頻度を減らします。(I284d3
  • 単一スロット textButton にデフォルトのコンテンツの説明を適用します。(I0dc8ab/415001534
  • レンダラ側で最大行数を調整する計算を修正しました。(I933bcb/414353620

バージョン 1.3

バージョン 1.3.0

2025 年 6 月 4 日

androidx.wear.protolayout:protolayout-*:1.3.0 がリリースされました。バージョン 1.3.0 にはこれらの commit が含まれています。

1.2.0 以降の重要な変更

  • Material 3 デザインがスマートウォッチに導入され、丸型ディスプレイに最適化されたコンポーネントとレイアウトが、小画面から大画面まで適切にスケーリングされます。
    • これには、次のコンポーネントと機能用の Compose に似た API を備えた Kotlin 専用の protolayout-material3 ライブラリが含まれます。
    • システムから取得されるダイナミック カラーテーマと、色、シェイプ、タイポグラフィの最新の Material3 テーマを備えた文字盤
    • MaterialScope: すべてのデフォルトの意見と簡単なカスタマイズを処理します
    • iconEdgeButtontextEdgeButton
    • iconButtontextButtonbuttonimageButtonavatarButtoncompactButton
    • titleCardappCardgraphicDataCardiconDataCardtextDataCard
    • circularProgressIndicatorsegmentedCircularProgressIndicator
    • primaryLayoutbuttonGroup
    • すべてのコンポーネントは、任意の SDK レベルと ProtoLayout レンダラ バージョンで動作し、該当する場合は適切なフォールバックを提供します。
  • 基本 ProtoLayout 要素用の Kotlin フレンドリーな Compose 風 API
    • LayoutModifier。ほとんどの修飾子をチェーン関数(paddingcontentDescriptionclearSemantics を含む)、backgroundclipopacity など)として追加可能。既存の Modifiers オブジェクトに変換可能
    • 動的フィールドと制約の使用をより簡単にサポートする型としての LayoutColorsLayoutString
    • textfontStyle
    • StateBuilder のマップサポートの改善。DynamicDataMapintAppDataKey などのファクトリ メソッドを含み、AppDataKey オブジェクトの作成を容易にする
  • Lottie アニメーションでは、アニメーションの開始タイミング(レイアウトの読み込み時やレイアウトの表示時など)に異なるトリガーを設定するオプションがサポートされています。
    • グラデーションのサポートの改善:
    • Brush の一部として、BoxSpacer などの要素の Background 修飾子で使用できる線形グラデーション API …
    • 線形グラデーションとスイープ グラデーションに使用される ColorStop での動的な色の値の許可
    • 円弧オブジェクトの既存のスイープ グラデーションで、ダイナミック カラーと開始角度と終了角度がサポートされるようになりました
  • protolayout-expression のプラットフォーム データ バインディング。レイアウトの可視性が変更されるたびに情報を受け取ります。たとえば、タイルをスワイプしている間、レイアウトの特定の部分を非表示にするために使用できます。
  • テスト ライブラリ - protolayout-testing - が追加され、ProtoLayout 要素の単体テスト カバレッジが容易になりました
  • 既存の ArcLine とは異なり、線に破線を使用できるように、機能セットが改善された新しい要素 DashedArcLine
  • ArcSpacer の長さの単位を度ではなく DP に設定するサポート
  • 一部のフォントに適用可能な丸み FontSetting 軸を追加

バージョン 1.3.0-rc01

2025 年 5 月 20 日

androidx.wear.protolayout:protolayout-*:1.3.0-rc01 がリリースされました。以前のリリースからの変更はありません。バージョン 1.3.0-rc01 には、これらの commit が含まれています。

バージョン 1.3.0-beta02

2025 年 5 月 7 日

androidx.wear.protolayout:protolayout-*:1.3.0-beta02 がリリースされました。バージョン 1.3.0-beta02 にはこれらの commit が含まれています。

バグの修正

  • API 36 以降に適用されるタイポグラフィの設計値に重要な改善を加えました。これは、API 36 以降ではすべてのタイルがシステム フォントになるため、この変更によりタイル カルーセルの整合性が向上するためです。(If316f
  • TextSpacerArcLineDashedArcLine の各ビルダーは、動的値の layoutConstraints が設定されていない場合でも例外をスローしません。古いレンダラでは layoutConstraints の設定が必須であり、設定されていない動的な値は無視されます。(Ic52e8
  • レイアウト要素がコンテンツのセクションの見出しであることをユーザー補助の目的で示す見出しセマンティクス修飾子を追加し、primaryLayout のタイトル スロット内のテキストをデフォルトでユーザー補助の見出しとしてマークします。(Iae1fb
  • primaryLayout の最終的な UX の調整。小さい画面でタイトル スロットとメインスロットの間のスペースが 6 dp から 4 dp に縮小されます。(I0e056
  • デフォルトのコンテンツの説明を textEdgeButton に適用します。(Ifaf8b
  • avatarButton の内側のパディングを少し更新しました。(I0910b

バージョン 1.3.0-beta01

2025 年 4 月 9 日

androidx.wear.protolayout:protolayout-*:1.3.0-beta01 がリリースされました。バージョン 1.3.0-beta01 には、これらの commit が含まれています。

新機能

Wear ProtoLayout 1.3.0-beta01 リリースでは、ライブラリのこのリリースは機能が完成し、API がロックされていることが表明されました(試験運用版としてマークされている場合を除く)。Wear ProtoLayout 1.3 には、次の新機能と API が含まれています。

  • Material 3 デザインがスマートウォッチに導入され、丸型ディスプレイに最適化されたコンポーネントとレイアウトが、小画面から大画面まで適切にスケーリングされます。
    • これには、次のコンポーネントと機能用の Compose に似た API を備えた Kotlin 専用の protolayout-material3 ライブラリが含まれます。
    • システムから取得されるダイナミック カラーテーマと、色、シェイプ、タイポグラフィの最新の Material3 テーマを備えた文字盤
    • MaterialScope: すべてのデフォルトの意見と簡単なカスタマイズを処理します
    • iconEdgeButtontextEdgeButton
    • iconButtontextButtonbuttonimageButtonavatarButtoncompactButton
    • titleCardappCardgraphicDataCardiconDataCardtextDataCard
    • circularProgressIndicatorsegmentedCircularProgressIndicator
    • primaryLayoutbuttonGroup
    • すべてのコンポーネントは、任意の SDK レベルと ProtoLayout Renderer バージョンで動作し、該当する場合は適切なフォールバックを提供します。
  • 基本 ProtoLayout 要素用の Kotlin フレンドリーな Compose 風 API
    • LayoutModifier。ほとんどの修飾子をチェーン関数(paddingcontentDescriptionclearSemantics を含む)、backgroundclipopacity など)として追加可能。既存の Modifiers オブジェクトに変換可能
    • 動的フィールドと制約の使用をより簡単にサポートする型としての LayoutColorsLayoutString
    • textfontStyle
    • StateBuilder のマップサポートの改善。DynamicDataMapintAppDataKey などのファクトリ メソッドを含み、AppDataKey オブジェクトの作成を容易にする
  • Lottie アニメーションでは、アニメーションの開始タイミング(レイアウトの読み込み時やレイアウトの表示時など)に異なるトリガーを設定するオプションがサポートされています。
    • グラデーションのサポートの改善:
    • Brush の一部として、BoxSpacer などの要素の Background 修飾子で使用できる線形グラデーション API …
    • 線形グラデーションとスイープ グラデーションに使用される ColorStop での動的な色の値の許可
    • 円弧オブジェクトの既存のスイープ グラデーションで、ダイナミック カラーと開始角度と終了角度がサポートされるようになりました
  • protolayout-expression のプラットフォーム データ バインディング。レイアウトの可視性が変更されるたびに情報を受け取ります。たとえば、タイルをスワイプしている間、レイアウトの特定の部分を非表示にするために使用できます。
  • テスト ライブラリ - protolayout-testing - が追加され、ProtoLayout 要素の単体テスト カバレッジが容易になりました
  • 既存の ArcLine とは異なり、線に破線を使用できるように、機能セットが改善された新しい要素 DashedArcLine
  • ArcSpacer の長さの単位を度ではなく DP に設定するサポート
  • 一部のフォントに適用可能な丸み FontSetting 軸を追加

バージョン 1.3.0-alpha10

2025 年 3 月 12 日

androidx.wear.protolayout:protolayout-*:1.3.0-alpha10 がリリースされました。バージョン 1.3.0-alpha10 には、これらの commit が含まれています。

新機能

  • kotlin の Background Modifier に Brush のヘルパーを追加しました。(I995de
  • マテリアル 3 タイルのコンポーネントを作成するデベロッパーの関数でより簡単に使用できるように、必須の Android Context フィールドが MaterialScope で公開されました。(I7df73

API の変更

  • API platformVisibilityStatus の名前を PlatformEventSources.isLayoutVisible に変更し、新しい試験運用版 API PlatformEventSources.isLayoutUpdatePending を追加します。(Ie1e04

バグの修正

  • primaryLayout のマージンが適切に切り上げられるようになりました。これにより、一部のレイアウトではメインスロットのスペースが最大 2 dp 減少する可能性があります。(I8f5d3
  • ProtoLayout Material3 コンポーネントのデフォルトのダイナミック カラーテーマを明確化しました。(Iff5f3
  • Typography.NUMERAL_* のタイポグラフィは、デフォルトで表形式/等幅ではなくなりました。テキストをアニメーション表示する場合は、FontSetting.tabularNum() 設定を追加することを強くおすすめします。その他の場合は、この等幅フォント オプションは必要ありません。このオプションを使用しないことで、使用可能な文字数が増えます。(Id3cd9
  • ProtoLayout Material3 コンポーネントのデフォルトのダイナミック カラーテーマを明確化しました。(I9d831

バージョン 1.3.0-alpha09

2025 年 2 月 26 日

androidx.wear.protolayout:protolayout-*:1.3.0-alpha09 がリリースされました。バージョン 1.3.0-alpha09 にはこれらの commit が含まれています。

新機能

  • enterTransitionexitTransition の試験運用版の修飾子を追加しました(I4a4d6
  • 全レイアウトの表示ステータスが変更されるたびに受け取れるように、プラットフォーム バインディングを追加しました。(I250c3
  • 動的な値を評価するために、テストアプリの状態とプラットフォーム データを LayoutElementAssertionsProvider に挿入できるようにします。(Ib5fcb
  • プロトレイアウト テスト ライブラリにコーナー フィルタを追加(Ie2361
  • ButtonColorsCardColorsProgressIndicatorColors でコピー メソッドがサポートされるようになりました。一部のパラメータは必要に応じてオーバーライドできます。(Ie2054

API の変更

  • テスト ライブラリに動的データ バインディングのサポートを追加(Ib98de
  • オーバーレイを削除して、backgroundImage 関数と併用した場合の imageButton を修正しました。また、backgroundImage 関数でオーバーレイの色に null を指定できるようにします。これは、オーバーレイが適用されないことを意味します。(Ibec3c

バグの修正

  • デフォルトの hasValueOfType メソッドを変更して、IllegalArgumentException ではなく UnsupportedOperationException をスローするようにしました。(Ia36c3
  • デフォルトのカラー トークンの値が、最新の仕様を反映するように更新されました。(I75d44
  • AndroidX タイル レンダラの円弧線に表示されるエイリアシングの問題を修正しました。(I88190

バージョン 1.3.0-alpha08

2025 年 2 月 12 日

androidx.wear.protolayout:protolayout-*:1.3.0-alpha08 がリリースされました。バージョン 1.3.0-alpha08 には、これらの commit が含まれています。

新機能

  • Material3 テキスト用の FontSetting リスト パラメータを追加しました。(Ic102d
  • DynamicDataMap クラスを追加しました。StateBuilder がこのクラスをサポートするようになり、アプリの状態に対する型安全な Kotlin API が改善されました(I012ba
  • AppDataKey オブジェクトを簡単に作成できるように、intAppDataKey などのファクトリ メソッドを追加しました(Icea2a
  • DynamicDataValue に、hasInt/hasColor/.... メソッドに加えて hasValueOfType(Class<?>) メソッドが追加されました(I4f7a6
  • Material3 ProtoLayout ColorSchemeerrorDim を追加しました。これは、優先度の高いエラーや、安全性アラートなどの緊急措置に使用されます。(Ia17bb
  • グローバルなモーション軽減設定にアクセスする際にクラッシュが発生するのを防ぐガードを追加しました。このクラッシュは、その設定が提供されていない一部のプラットフォームで発生していました。(I01e2c

API の変更

  • addKeyToValueMapping の名前が addToStateMap に変更され、DynamicDataMap.put メソッドは冗長だったため削除されました。(Ibe9dd
  • Material3 Typography が、この軸をサポートするシステム フォントの丸み変数軸をサポートするようになりました。ProtoLayout FontSetting は、この軸をサポートするフォントの丸み軸をサポートしています。(I33eb5
  • Material3 テキスト メソッドで multilineAlignment の名前を alignment に変更しました。(I2b66b
  • 円形プログレス インジケーターを Box タイプに更新し、constructGraphicmainContent を Box タイプに指定(I5a3dc
  • グラフでの円形進行状況インジケーターの使用のサポートを改善しました(I039db

バグの修正

  • ColorStop で動的な値を許可し、SweepGradient の開始角度と終了角度でも動的な値を許可します。(I0146d
  • ドキュメントの修正。(I4a63a
  • weight 拡張ディメンションがサポートされていない場合(API 33 未満など)にフォールバックを提供するように、マテリアル 3 コンポーネント(graphicCardavatarButton)を更新しました。レンダラで TEXT_OVERFLOW_ELLIPSIZE がサポートされていない場合に TEXT_OVERFLOW_ELLIPSIZE_END にフォールバックするようにテキスト コンポーネントを更新しました。(I19e2c
  • PrimaryLayoutMargins のドキュメントを更新しました。(Ibaf7b

バージョン 1.3.0-alpha07

2025 年 1 月 29 日

androidx.wear.protolayout:protolayout-*:1.3.0-alpha07 がリリースされました。バージョン 1.3.0-alpha07 には、これらの commit が含まれています。

新機能

  • Lottie アニメーションのさまざまなトリガーを設定する API オプションを追加しました。また、レイアウトが表示されたときにトリガーされる API を追加しました(I8272d
  • bordervisibilityopacity の修飾子を追加しました。(I6d3dd
  • ProtoLayout Material3 コンポーネントにアバター ボタンを追加しました。(Idb5ae
  • Material3 primaryLayout でマージン(サイド、場合によっては下部)をカスタマイズできるようになりました。(Ib22f6
  • 円形の進行状況インジケーターのセグメント化されたバリエーションを追加しました。(I6a648
  • ProtoLayout Material3 にコンパクト ボタン コンポーネントを追加しました。(Ia3c5c
  • ProtoLayout Material3 にピル型のボタンと画像ボタンのコンポーネントを追加しました。(Ifb88a

API の変更

  • 想定される動作をより適切に反映するため、LayoutModfier.foldInfoldRight に変更しました(Idf242
  • VisibleOnce トリガーが試験運用版になりました。(Ib2d26
  • グラフィック ライブラリの代替手段があるため、公開 API から withOpacity を削除しました。(I030c2
  • LayoutString.ktLayoutColor.kt の最上位メソッドの名前を Java に適した名前に変更しました。(I7aff0
  • Material3 で ProtoLayout 以外のタイポグラフィを削除しました。(Idd9ae
  • Material3 の *Colors クラスのフィールドに接尾辞 Color を追加します。(I2d114

バグの修正

  • 非対称の角のサポートがない古いレンダラ用の EdgeButton フォールバック実装を追加(I63364
  • 古いレンダラで円形の進行状況インジケーターのフォールバック実装を追加します。(I0f134

バージョン 1.3.0-alpha06

2025 年 1 月 15 日

androidx.wear.protolayout:protolayout-*:1.3.0-alpha06 がリリースされました。バージョン 1.3.0-alpha06 にはこれらの commit が含まれています。

新機能

  • 静的と動的の両方のカラータイプをサポートするように LayoutColor を更新(I4c89b
  • ProtoLayout Material3 textButton コンポーネントを追加しました。(Id680d
  • iconButton ProtoLayout Material3 コンポーネントを追加しました。(Ica3f0
  • ProtoLayout Material3 ボタン コンテナ コンポーネントを追加しました。(I17a38
  • Chainable セマンティック修飾子のサポートを protolayout-material3 に追加しました(I4af62
  • ProtoLayout Material3 の単一セグメント CircularProgressIndicator を追加しました(I2c8a2
  • paddingmetadata 修飾子を追加しました(I8720a
  • backgroundclipclickable 修飾子を追加しました(I35478
  • ブラシに LinearGradient を追加し、背景修飾子で使用できるようにします。(Ic4dea
  • appCard と titleCard に小さいサイズを追加。(I91f98
  • ProtoLayout Material3 graphicDataCard コンポーネントを追加しました。(I92be7
  • ProtoLayout Material3 の iconDataCard コンポーネントと textDataCard コンポーネントを追加しました。(I4e1e4
  • ProtoLayout Material3 appCard コンポーネントを追加しました。(Id4c57
  • EdgeButtonColorsButtonColors に抽象化します。(I83624
  • ProtoLayout Material3 titleCard コンポーネントを追加しました。(I2dc72

API の変更

  • ProtoLayout Material3 API が LayoutString を受け入れるようになり、静的テキストと動的テキストの両方をサポートするようになりました。(I9c24a

バグの修正

  • DashedArcLine をインフレートするためのレンダラ実装を追加(I0c700
  • ArcSpacer が dp の長さを取得できるようにするレンダラ変更。(I1437b

バージョン 1.3.0-alpha05

2024 年 12 月 11 日

androidx.wear.protolayout:protolayout-*:1.3.0-alpha05 がリリースされました。バージョン 1.3.0-alpha05 にはこれらの commit が含まれています。

新機能

  • バインド可能なレイアウト文字列フィールドをサポートするために LayoutString を追加しました。(Ida650
  • ProtoLayout Material3 カード コンテナ コンポーネントを追加しました。(Ic985a

バグの修正

  • このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin を使用している場合、次のコンパイラ引数を使用して正しい使用法を適用する必要があります。-Xjspecify-annotations=strict(Kotlin コンパイラのバージョン 2.1.0 以降ではデフォルトです)。(Id1f9bb/326456246

バージョン 1.3.0-alpha04

2024 年 11 月 13 日

androidx.wear.protolayout:protolayout-*:1.3.0-alpha04 がリリースされました。バージョン 1.3.0-alpha04 には、これらの commit が含まれています。

新機能

  • Wear Compose と同様に、実際の Corner 値を保持するフィールドを持つクラスになるように Material3 の形状を更新しました。(Ied8cd
  • Wear Compose と同様に、ColorScheme のコンセプトを含むように Material3 の色を更新しました。(If645e
  • テスト ライブラリに、よく使用される複数のマッチャーを追加しました。(Ie5cec

バージョン 1.3.0-alpha03

2024 年 10 月 30 日

androidx.wear.protolayout:protolayout-*:1.3.0-alpha03 がリリースされました。バージョン 1.3.0-alpha03 には、これらの commit が含まれています。

新機能

  • テスト ライブラリに LayoutElementAssertionsProviderLayoutElementAssertionLayoutElementMatcher を追加しました(Id1110

バージョン 1.3.0-alpha02

2024 年 10 月 16 日

androidx.wear.protolayout:protolayout-*:1.3.0-alpha02 がリリースされました。バージョン 1.3.0-alpha02 には、これらの commit が含まれています。

新機能

  • Material 3 ライブラリの初期バージョン。textedgeButtonbuttonGroupprimaryLayout コンポーネントが含まれています。

セキュリティに関する修正

  • この変更により、androidx は CVE-2024-7254 に対応するため、protobuf 4.28.2 に対してコンパイルされます。脆弱性のリスクに対処するため、androidx.wear.protolayout:protolayout-protoandroidx.wear.protolayout:protolayout-external-protobuf のバージョン 1.3.0-alpha01 への依存関係を 1.3.0-alpha02 にアップグレードしてください。

外部からの協力

バージョン 1.3.0-alpha01

2024 年 10 月 2 日

androidx.wear.protolayout:protolayout-*:1.3.0-alpha01 がリリースされました。バージョン 1.3.0-alpha01 にはこれらの commit が含まれています。

バグの修正

  • Roboto と Roboto Flex のフォント ファミリー名がデバイスによって異なることを明確にしました。(I193be
  • AndroidX Tile レンダラで Roboto Flex フォント ファミリーを有効にしました。(I08e94

バージョン 1.2

バージョン 1.2.1

2024 年 10 月 16 日

androidx.wear.protolayout:protolayout-*:1.2.1 がリリースされました。バージョン 1.2.1 にはこれらの commit が含まれています。

セキュリティに関する修正

  • この変更により、androidx は CVE-2024-7254 に対応するため、protobuf 4.28.2 に対してコンパイルされます。脆弱性のリスクに対処するため、androidx.wear.protolayout:protolayout-protoandroidx.wear.protolayout:protolayout-external-protobuf のバージョン 1.2.0 への依存関係を 1.2.1 にアップグレードします。

バージョン 1.2.0

2024 年 8 月 7 日

androidx.wear.protolayout:protolayout-*:1.2.0 がリリースされました。バージョン 1.2.0 には、これらの commit が含まれています。

1.1.0 以降の重要な変更

  • FontStyle が更新され、可変軸のフォント サポートが追加され、今後の Flex フォントをサポートするためのフォント選択 API が改善されました。
  • 追加の修飾子のサポート:
    • アニメーションの有無にかかわらず、変換、回転、スケーリングを提供する変換修飾子。
    • 各角の半径に異なる値(水平方向と垂直方向)を指定する。
  • Clickable 修飾子を使用する要素のタップ可能領域を 48dp × 48dp 以上に拡張することで、すべてのタッチ ターゲットのアクセシビリティを改善しました。
  • PrimaryLayoutEdgeContentLayout を改善し、setResponsiveContentInsetEnabled を追加して、さまざまな画面サイズでこれらのレイアウトのレスポンシブ動作をより適切にサポートし、タイルの一貫性を改善しました。
  • Android 14 の非線形フォント スケーリングに対応するため、Android 14 のマテリアル テキストのスケーリング/非スケーリングを改善しました。
  • すべての弧要素で RTL レイアウト方向のサポートを改善しました。

その他の変更

  • バージョン 1.1.0 で導入された変更点の完全なセットについては、beta01 リリースノートをご覧ください。

バージョン 1.2.0-rc01

2024 年 7 月 24 日

androidx.wear.protolayout:protolayout-*:1.2.0-rc01 がリリースされました。バージョン 1.2.0-rc01 には、これらの commit が含まれています。

バグの修正

  • プライマリ ラベルまたはセカンダリ ラベルが渡されない場合にのみアイコンとして使用できるように、標準の Material Chip を修正しました。(Iceef9
  • マテリアル レイアウトのドキュメントが更新され、レイアウトを理解しやすくするために、関連するページのビジュアルが追加されました。(I0256a

バージョン 1.2.0-beta01

2024 年 7 月 10 日

androidx.wear.protolayout:protolayout-*:1.2.0-beta01 がリリースされました。バージョン 1.2.0-beta01 にはこれらの commit が含まれています。

新機能

Wear ProtoLayout 1.2.0-beta01 リリースでは、ライブラリのこのリリースは機能が完成し、API がロックされていることが表明されました(試験運用版としてマークされている場合を除く)。Wear ProtoLayout 1.2 には、次の新機能と API が含まれています。

  • FontStyle が更新され、次のフォントが追加でサポートされるようになりました。
    • FontSetting.weightFontSetting.width などのさまざまなフォント バリエーション設定を設定する
    • すべての数字の文字幅を同じに設定する - 表組数字(FontSetting.tnum フォント機能設定)
    • 使用する優先フォント ファミリー名を指定することで、今後のフレックス フォントをサポートするようフォント選択 API を改善しました。
  • Corner 修飾子を拡張し、各 CornerRadius を個別の水平値と垂直値で指定できるようにしました。これにより、非対称の角を持つ要素を構築できます。
  • LayoutElement の平行移動、回転、スケーリングを提供する新しい Transformation 修飾子を追加しました。これらの変換は、動的な値を使用してアニメーション化できます。
  • さまざまなレイアウト方向(LTR や RTL など)でのサポートを強化するため、すべての円弧要素(ArcArcLineArcText)に ClockwiseCounterClockwiseNormal のオプションを含む setArcDirection を追加しました。
  • Clickable 修飾子を使用する要素のタップ可能領域を 48dp x 48dp 以上に拡張することで、すべてのタップ ターゲットのユーザー補助機能を改善しました。
  • PrimaryLayoutEdgeContentLayout を改善し、setResponsiveContentInsetEnabled を追加して、さまざまな画面サイズでこれらのレイアウトのレスポンシブ動作をより適切にサポートし、タイルの整合性を改善しました。これらの API の使用を提案するリンター警告と簡単な修正を追加しました。
  • Android 14 の非線形フォント スケーリングに対応するため、マテリアル Text のスケーリング/非スケーリングを改善しました。

API の変更

  • preferredFontFamilies API を使用しないことで暗黙的に指定されるため、デフォルトのフォント ファミリー名(DEFAULT_SYSTEM_FONT)が削除されました。(I39dab
  • FontSetting.width に渡されるパラメータは正の値である必要があります。(I1266f

バージョン 1.2.0-alpha05

2024 年 6 月 26 日

androidx.wear.protolayout:protolayout-*:1.2.0-alpha05 がリリースされました。バージョン 1.2.0-alpha05 には、これらの commit が含まれています。

新機能

  • テキスト コンテンツが設定されているかどうかを確認するため、hasText メソッドを Material.CompactChip に追加しました。(I6e8fc

API の変更

  • FontFamily 定数が、ビルダークラスではなく FontStyle に移動されました。(I06ced
  • 範囲アノテーションを含めるように FontSetting.weight API と FontSetting.width API を更新し、重みのパラメータを int に変更しました。(Ia726c

バグの修正

  • マテリアル ライブラリの非スケーラブル テキストが、Android 14 の非線形フォント スケーリングで正しく動作するようになりました。(I6601e

バージョン 1.2.0-alpha04

2024 年 5 月 29 日

androidx.wear.protolayout:protolayout-*:1.2.0-alpha04 がリリースされました。バージョン 1.2.0-alpha04 には、これらの commit が含まれています。

API の変更

  • 非対称の角の API を追加しました。2 つの値で各角の半径を個別に指定できます。(Icbd69
  • FontSetting API を拡張して、次の機能を追加しました。
    • フォントを表形式に設定するなど、フォント機能の設定。(If12b7
    • バリアブル フォントのカスタム幅の設定などのフォント バリエーション設定。(I2b36d
  • FontStyle にフォント ファミリー API を追加し、使用するフォント ファミリーの順序リストを指定できるようにしました。(Iba9f5
  • Material の LayoutDefaults で、コンテンツとセカンダリ ラベルの間のスペースの高さの定数の名前を変更しました。これらの定数は、当初は「Edge content」という接頭辞が付いていましたが、PrimaryLayoutEdgeContentLayout の両方に適用できるように、より汎用的な名前に変更されました。(I4dc32

バグの修正

  • 可変フォントの軸の名前を axisName から axisTag に変更しました。(I02ba3

バージョン 1.2.0-alpha03

2024 年 5 月 14 日

androidx.wear.protolayout:protolayout-*:1.2.0-alpha03 がリリースされました。バージョン 1.2.0-alpha03 には、これらの commit が含まれています。

新機能

  • FontStyle のカスタム重み値を設定するための API を追加しました。(I7390a

バグの修正

  • ターゲット マップが空であるため getTouchDelegateInfo で失敗する問題を修正しました。(I2accf

バージョン 1.2.0-alpha02

2024 年 5 月 1 日

androidx.wear.protolayout:protolayout-*:1.2.0-alpha02 がリリースされました。バージョン 1.2.0-alpha02 には、これらの commit が含まれています。

API の変更

  • 個々のクリック可能な要素でリップル フィードバックを無効にするサポートを追加しました。(If1ede
  • 変換用の API が ArcModifiers から削除されました。これは、ArcModifiers がその機能をサポートしていないためです(Ic0827
  • ArcDirectionProp ビルダーでコンストラクタの値が要求されるようになりました。(I76ada
  • PlatformDataValues.Builder.putAll メソッドを使用すると、1 つの PlatformDataValue を別の PlatformDataValue に統合できます。(I50ba3
  • Text#setIsScalable の名前が Text#setScalable に変更されました。(If920e
  • Material Text では、スケーラブルなサイズ(ユーザーのフォントサイズが変更されたときに拡大)を使用するかどうかを設定できます。(Ibc849
  • コンテンツの説明を TitleChip に設定するオプションを追加しました。(I5d21f
  • アイコンのみで CompactChip が正しく動作するように修正し、このオプションを許可するように API を更新しました。(I6589e

バグの修正

  • 初期化中にプラットフォーム データが重複する可能性がある問題を修正しました。(Iba0fd
  • ノードの費用を取得するために、DynamicDataNode に新しいゲッターを導入します。この費用は、動的ノードの割り当てを取得するときに使用されます。現在、固定値を持つノードの費用は 0 になり、他のすべてのノードの費用は 1 になります。(Ia33e1
  • NO_OP_QUOTA_MANAGER からカウント ロジックを削除します。(Ib50b8
  • setResponsiveContentInsetEnabled なしで PrimaryLayout が使用された場合に警告をレポートし、簡単な修正を提供する lint ルールを追加しました。(I12025
  • 動的式ノードの数には上限があります。(Iffae8

バージョン 1.2.0-alpha01

2024 年 3 月 6 日

androidx.wear.protolayout:protolayout-*:1.2.0-alpha01 がリリースされました。バージョン 1.2.0-alpha01 にはこれらの commit が含まれています。

新機能

  • ProtoLayout Arc 要素に ArcDirectionClockwiseCounterclockwiseNormal)を追加できるようになりました。この動作を ArcArcLineArcText に追加すると、RTL レイアウトでの動作が修正されます。(I90699
  • UX ガイドラインとの整合性を高め、プライマリ ラベルを上部の固定位置に配置し、ラベルのレスポンシブ インセットを設けることで、タイルの整合性を保つため、新しい setResponsiveContentInsetEnabled セッターで EdgeContentLayout を更新しました。(I60175
  • このレイアウトでは、コンテンツが画面の端から外れないように、プライマリ ラベル、セカンダリ ラベル、下部のチップにレスポンシブなインセットを追加する PrimaryLayout.setResponsiveContentInsetEnabled を追加しました。(I0c457
  • CircularProgressIndicator から外側のマージンを削除するメソッドを追加し、より小さなコンポーネントとして使用できるようにしました。(I55c06

API の変更

  • タイル レンダラでは、すべてのテキスト要素でフォント パディングがデフォルトで除外されるようになりました。フォント パディングを含めるオプションはありません。(I3e300

バグの修正

  • テキストで省略記号、文字間隔、中央揃えをすべて使用した場合のテキストの配置に関する問題を修正しました。(I716c7
  • skia の円弧描画に関する問題の回避策を追加しました。(I08f09
  • RTL レイアウトの ArcLine 描画方向を修正。(I6c141

バージョン 1.1

バージョン 1.1.0

2024 年 2 月 7 日

androidx.wear.protolayout:protolayout-*:1.1.0 がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください

1.0.0 以降の重要な変更

  • ArcLine でのグラデーションのサポートと 360 度を超える長さの表現の改善。
  • 日時形式では、動的データ型で異なるタイムゾーンがサポートされています。
  • 切り捨てられたテキストを処理するための、テキストの自動サイズ調整と省略記号のオプションが改善されました。
  • スペーサーは、オプションの重みを使用して拡張されたディメンションをサポートします。
  • すべての ProtoLayout API へのスキーマ バージョン要件アノテーション。
  • ユーザー補助の要件を満たすため、Clickable 要素のターゲット領域を 48 dp x 48 dp に拡大しました。
  • フォント パディングはデフォルトでオフになっており、テキストを含むすべての Text 要素とマテリアル コンポーネントで唯一の動作です。

その他の変更

  • バージョン 1.1.0 で導入された変更点の完全なセットについては、beta01 リリースノートをご覧ください。

バージョン 1.1.0-rc01

2024 年 1 月 24 日

androidx.wear.protolayout:protolayout-*:1.1.0-rc01 がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください。

バグの修正

  • アップデートを有効にすると、すぐに PlatformTimeUpdateNotifierImpl が刻まれます。(I77145
  • RTL レイアウトで CircularProgressIndicator が修正されました。今後は、常に時計回りに進みます。(I95ee3
  • skia の円弧描画に関する問題の回避策を追加しました。(I08f09

バージョン 1.1.0-beta01

2024 年 1 月 10 日

androidx.wear.protolayout:protolayout-*:1.1.0-beta01 がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください

新機能

Wear ProtoLayout 1.1.0-beta01 リリースでは、ライブラリのこのリリースは機能が完成し、API がロックされていることが表明されました(試験運用版としてマークされている場合を除く)。Wear ProtoLayout 1.1 には、次の新機能と API が含まれています。

  • ArcLine が、SweepGradient を含む Brush を追加することでグラデーションをサポートするようになりました。また、キャップに影を付け、既存の StrokeCapShadow を追加することで、360 度を超える長さをより適切に表現できるようになりました。
  • DynamicInstant は、ゾーン付きの日付 / 時刻のフォーマットをサポートしています。DynamicInstantDynamicDuration は、状態またはプラットフォームのデータ型として使用できます。
  • テキストサイズの自動サイズ設定機能。複数のサイズを FontStyle.setSizes に設定すると、テキストサイズは親要素内のスペースに基づいて自動的に調整されます。また、TEXT_OVERFLOW_ELLIPSIZE を追加し、TEXT_OVERFLOW_ELLIPSIZE_END を非推奨にすることで、オーバーフローしたテキストの省略記号オプションを改善しました。
  • Spacer が、オプションのウェイトを持つ拡大ディメンションをサポートするようになりました。ExpandedDimensionProp をビルドするために、ヘルパー メソッド DimensionBuilders.weight を追加しました。
  • Modifier.visible を使用してレイアウト要素を動的に非表示 / 再表示するサポート。これには、BoolProp に動的な値が含まれている場合も含まれます。
  • すべての ProtoLayout API にスキーマ バージョンの要件アノテーションが追加され、新しい API を呼び出す前にバージョンを確認できるようになりました。
  • Clickable を持つすべての要素のターゲット領域が、レンダラで 48x48 以上に拡張され、ユーザー補助の要件をより適切にサポートできるようになりました。
  • 他のマテリアル コンポーネントと Compose の取り組みに続き、すべての Text 要素でフォント パディングがデフォルトでオフになりました。また、AndroidTextStyle と関連するセッターが公開 API から削除されました。以下のバグ修正が含まれています。
  • EdgeContentLayout のエッジ コンテンツを配置するセッターを追加しました。これにより、他のコンテンツの前に配置できるようになります。
  • 認識できない列挙値が発生した場合に、例外を常にスローします。
  • 式が無効な数値(NaN または無限)を返すか、ArithmeticException をスローしたときに、式の結果を無効にします。

API の変更

  • コンストラクタで色または ColorStops のいずれかを受け入れられるように SweepGradient API を更新しました。(I6676f

バグの修正

  • 制限付き API と、円弧要素が描画される方向を設定するレンダラ サポートを追加しました。(Idef5a
  • 指定しない場合、RoundModeFloatToInt32NodeFloor にデフォルト設定されます。指定された RoundMode が認識されない場合、ノードは例外をスローします。(I1b2d8

バージョン 1.1.0-alpha04

2023 年 12 月 13 日

androidx.wear.protolayout:protolayout-*:1.1.0-alpha04 がリリースされました。バージョン 1.1.0-alpha04 に含まれる commit については、こちらをご覧ください

新機能

  • VersionInfo クラスが Comparable インターフェースを実装していません。(I8d13c
  • レンダラで TEXT_OVERFLOW_ELLIPSIZE オプションがサポートされるようになりました。(I7f085

API の変更

  • テキスト オーバーフロー オプション TEXT_OVERFLOW_ELLIPSIZE_END のサポートが終了しました。動作が非常によく似た新しい API TEXT_OVERFLOW_ELLIPSIZE を使用してください。(I822d8
  • 他のマテリアル コンポーネントと Compose イニシアチブに続き、すべての Text 要素でフォント パディングがデフォルトでオフになりました。また、AndroidTextStyle と関連する setter が公開 API から削除されました。(I79094Ib0b03I32959Iaf7d5Ifa298I0a4aeIda9d3
  • Modifier.hiddenModifier.visible に置き換えられました。(I56902
  • FontStyle#setSizesSpProp 引数ではなく int を受け取るようになりました。(I02b37

バグの修正

  • Undefined または Unrecognized の列挙型値が検出されたときに例外をスローします。(I9d2cf
  • DynamicTypeBindingRequest をリファクタリングします。(I27b57
  • 式が無効な数値(NaN または無限)を返すか、ArithmeticException をスローしたときに、式の結果を無効にします。(I681ae

バージョン 1.1.0-alpha03

2023 年 11 月 29 日

androidx.wear.protolayout:protolayout-*:1.1.0-alpha03 がリリースされました。バージョン 1.1.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • レイアウト要素の動的な非表示/再表示の試験運用版のサポートを追加しました(I64a78
  • BoolProp に動的値のサポートを追加(I2fe96
  • ProtoLayout API にスキーマ バージョン要件アノテーションを追加(I0f03c
  • 最大行数に達していない場合でも(テキストのスペースが足りない場合)、固定の親コンテナ内のテキストを省略記号で表示するための TextOverflow の新しいオプションで API を拡張しました。(I110a9
  • 重み付きの ExpandedDimensionProp を構築するためのヘルパー メソッド DimensionBuilders.weight を追加しました。(I4f72b
  • DynamicInstantDynamicDuration は、状態またはプラットフォームのデータ型として使用できます。(I6819f

API の変更

  • DynamicZonedDateTime を非表示にして、そのすべてのオペレーションを DyanamicInstant に移動するように API を更新(I34b94
  • Spacer で、幅/高さの Expanded ディメンションがサポートされるようになりました。(Ie7c94
  • レンダラでのクリック ターゲット領域拡張をサポート(I39c79

バージョン 1.1.0-alpha02

2023 年 11 月 15 日

androidx.wear.protolayout:protolayout-*:1.1.0-alpha02 がリリースされました。バージョン 1.1.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • API に ArcLine StrokeCap Shadow フィールドを追加しました。(I830ec
  • Spacer の幅または高さを指定して拡張できるように API を拡張します。(I757ca
  • 親内のスペースに基づいてテキストサイズを自動的に調整する試験運用版 API を追加しました。(Ibbe63
  • クリック可能な最小サイズをサポート(I178e3
  • StrokeCap Shadow のレンダラ サポートを追加しました。(I48b17
  • ArcLine でスイープ グラデーションのレンダラ サポートを追加。(I4d5bb

バージョン 1.1.0-alpha01

2023 年 10 月 18 日

androidx.wear.protolayout:protolayout-*:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • SweepGradient のサポートを含むブラシ オプションを Arcline に追加しました。(Ie7ce3
  • ゾーン付き日時形式のサポートを追加しました。(Ibfae0
  • タイムゾーン付きの日付と時刻の形式に必要な protos と java ラッパーを追加しました。(I97126
  • DynamicDataValue に保存された値を読み取るためのゲッターを追加しました。(Ie6cea
  • EdgeContentLayout のエッジ コンテンツを配置するセッターを追加しました。これにより、他のコンテンツの前に配置できるようになります。(Ie8e8a

バグの修正

  • 複数の時間データソース登録を含む式がすぐに更新されない問題を修正しました。(I8e1a8
  • 差分更新中にルート要素を中央に配置するバグを修正しました。(Ie48f7
  • レイアウト制約の未設定(または空)の値が無視されなくなりました。(Ibc785
  • レイアウトが表示されてからパイプライン ノードが初期化されるまでの遅延を短縮しました。(I38d4e

バージョン 1.0

バージョン 1.0.0

2023 年 8 月 9 日

androidx.wear.protolayout:protolayout-*:1.0.0 がリリースされました。バージョン 1.0.0 に含まれる commit については、こちらをご覧ください

1.0.0 の主な機能

ProtoLayout ライブラリには、さまざまな Wear OS サーフェスで使用できるレイアウトと式を作成するための API が導入されています。たとえば、Tiles ライブラリはこれらの API を使用して、プラットフォームのデータ バインディング(タイルデータの更新を高速化するため)とアニメーションをサポートします。

バージョン 1.0.0-rc01

2023 年 7 月 26 日

androidx.wear.protolayout:protolayout-*:1.0.0-rc01 がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください

  • タイルから ProtoLayout に移行するには、こちらの手順に沿って操作してください。

API の変更

  • Arc 要素から setLayoutConstraintForDynamicAnchorAngle メソッドと getLayoutConstraintForDynamicAnchorAngle メソッドを削除しました。これらのメソッドは誤って追加されたもので、提供されたレイアウトには影響しませんでした。(If7d01
  • ProtoLayout のレイアウトの最大深度を 30 個のネストされた LayoutElements に制限しました。(I8a74b

バグの修正

  • SpanTextDynamicColor が設定されている場合にスローするチェックを追加しました。(I0e5bc
  • DAILY_CALORIES データソースの単位が kcal であることが明確になりました。(Iaa785

バージョン 1.0.0-beta01

2023 年 6 月 21 日

androidx.wear.protolayout:protolayout-*:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください

新機能

  • 時間バインディング テストのクロックの設定を許可。(I05622

API の変更

  • PlatformDataReceiver.onData()StateBuilders.Builder.addKeyToValueMapping が、安全でないジェネリクスではなく、DynamicDataKey から DynamicDataValue への型安全なマッピングを受け取るようになりました。つまり、DynamicDataValueDynamicType で型付けされるようになります。他の Android 定数の位置合わせに合わせて、HEART_RATE_ACCURACY_X 定数を PlatformHealthSources のルートに移動しました。HEART_RATE_ACCURACY_X int 定数が、値定数の代わりに DynamicHeartRateAccuracy.constant()DynamicHeartRateAccuracy.dynamicDataValueOf() で直接使用されるようになりました。(I82ff5
  • PlatformHealthSources.Constants クラスが誤ってインスタンス化可能になっていました。この問題は修正されています。(Icb849
  • PlatformTimeUpdateNotifier#setReceiver が、Supplier 関数と通知先の Executor ではなく Runnable を受け取るようになりました。(I9d938
  • PlatformTimeUpdateNotifier#setReceiver のパラメータの型を Callable から Supplier に変更しました。(I664bf
  • CompactChipTitleChip でアイコンの追加がサポートされるようになりました。(I5a01e

バグの修正

  • oneof を使用するように動的フィールドを含む Prop メッセージを更新(I81739
  • セッターを持つオーバーロードのセッター実装を再利用(Ied70c
  • オーバーロードがあるセッターで指紋を適切に記録(I86ed2

バージョン 1.0.0-alpha11

2023 年 6 月 7 日

androidx.wear.protolayout:protolayout-*:1.0.0-alpha11 がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください

新機能

  • 心拍数の精度に関する PlatformDataKey を追加しました。(I7f9b8

API の変更

  • StateBuilders#getIdToValueMapping の名前を getKeyToValueMapping に変更し、戻り値の型を Map<<AppDataKey<?>,DynamicDataValue> に変更します。(Iaa7ae
  • StateStore を最終クラスにしました(I408ca
  • TimeGateway インターフェースは protolayout-expression-pipeline ライブラリの PlatformTimeUpdateNotifier に置き換えられました。これにより、時間データの更新に望ましい頻度を指定できます。(I60869
  • PlatformDataProviderregister/unregisterForData の名前を set/clearReceiver に変更(I14b02
  • Material Text で、getExcludeFontPadding の名前が hasExcludeFontPadding に変更されました。(Iea01d
  • ラベルを完全に配置するためのセッターがすべてのチップ コンポーネントに追加されました。すべてのチップに最小タップ可能ターゲットが適用されるようになりました。(I8ae92
  • LayoutDefaults#BUTTON_MAX_NUMBER の名前を MAX_BUTTONS に変更しました。(I84788
  • DAILY_DISTANCE の名前が DAILY_DISTANCE_M に変更されました。(I4f758

バグの修正

  • 静的値が強制される理由を明確にするため、Prop types のドキュメントを更新しました。静的な値が指定されていない場合に使用されるデフォルト値を指定します。(I155aa
  • PlatformDataKey Namespace は、Java スタイルの命名規則に従う必要があります。(I47bda

バージョン 1.0.0-alpha10

2023 年 5 月 24 日

androidx.wear.protolayout:protolayout-*:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。

新機能

  • アプリのプッシュ状態にアクセスするための AppDataKey を追加。プラットフォーム データにアクセスするための PlatformDataKey を追加。StateStore で名前空間のサポートを追加。(I7985e
  • DynamicBoolEqual オペレーションと NotEqual オペレーションをサポートします。(I6a0c1

API の変更

  • FontStyles クラスが最終版になりました(Iaa2ea
  • LayoutElementBuilders#FontStyles が非推奨になりました。androidx.wear.protolayout.Typography を使用するか、独自の FontStyle を作成してください。(Ic929b
  • Action インターフェースから Action#Builder ネストされたインターフェースを非表示にします。Builder の実装は、LoadAction クラスと LaunchAction クラスによってすでに提供されています。(I1d70c
  • FloatPropDynamicFloat を使用できるようにします。FloatProp はレイアウト変更のプロパティとして使用されないため、レイアウト制約は必要ありません。(I286ac
  • LoalAction アクションと SetStateAction アクションは、まだ完全にサポートされていなかったため削除されました。(I5d6a6
  • インライン画像リソースの ARGB_8888 形式のサポートを追加しました。(I8a07c
  • StateEntryValue の名前を DynamicDataValue に変更し、DynamicDataKey を使用するように状態 API を更新(If1c01
  • StateStore の各インスタンスでメモリ使用量と状態更新時間が適切に制御されるように、StateStore で許可されるエントリの数を制限しています。そのため、デベロッパーは、マップに MAX_STATE_ENTRY_COUNT エントリが StateStore 個以上存在しないようにする必要があります。そうしないと、StateStore の作成または更新時に IllegalStateException が返されます。(Ibadb3
  • OnLoadTrigger クラスと OnConditionMetTrigger クラスを非表示にし、OnConditionMetTriggersetTrigger の名前を setCondition に変更しました。(Ibf629
  • パフォーマンスと互換性の理由から、ProtoLayout レンダラは AnimatedVectorDrawable リソースのすべての機能をサポートしません。サポート対象のセットを定義できるまで、これらの API は試験運用版としてマークされます。(Ic6daf
  • 1 日の距離、1 日のカロリー、1 日の階数の動的型を追加しました。プラットフォームの健康に関する情報源のキーが PlatformHealthSources.Keys に移動しました(Ib7637
  • Easing.cubicBezier メソッドは CubicBezierEasing.Builder に置き換わります。これにより、EasingFunction クラスが削除され、そのクラスのイージング定数が Easing インターフェースから直接アクセスできるようになりました。また、setInfiniteRepeatableINFINITE_REPEATABLE_WITH_RESTARTINFINITE_REPEATABLE_WITH_REVERSE に置き換えられました。(Ib41e7
  • PlatformDataProvider を実装して、心拍数と 1 日の歩数を提供します。SensorGateway インターフェースが公開 API から削除されました。(I55b84
  • PlatformDataProvider を追加し、プロバイダのサポートされているキーが式パイプラインのノードで必要な場合に StateStore を更新して PlatformDataProvider に登録します。(Ib616a
  • SensorGateway は状態を保持しなくなったため、Closeable ではなくなりました。(I6b4f7
  • CircularProgressIndicator の進行状況について DynamicFloatFloatProp を使用できるようにします。これは、バージョン 1.2 をサポートするレンダラでサポートされています。古いレンダラは、指定されている場合は staticValue に、それ以外の場合は 0 にフォールバックします(I0d91b
  • MultiButtonLayout 定数が LayoutDefaults.MultiButtonLayoutDefaults クラスにリファクタリングされました。このクラスには、レイアウト内のボタンの数に応じてボタンのサイズを指定する定数が含まれています。(I13973
  • マテリアル テキストで DynamicString とともに StringProp を使用できるようになりました。これは、バージョン 1.2 をサポートするレンダラでサポートされています。古いレンダラは、指定された静的な値にフォールバックします。Text#getText の戻り値の型を String から StringProp に更新します。(I7275b

バージョン 1.0.0-alpha09

2023 年 5 月 10 日

androidx.wear.protolayout:protolayout-*:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。

新機能

  • 試験運用版の拡張機能レイアウト要素を追加しました。なお、これはデフォルトでは使用できず、レイアウト要素を理解できるレンダラ拡張機能が必要です。(I6581d
  • ArcLineStrokeCap サポートを追加しました。(I94951
  • 条件付きインスタント オペレーションのサポートを追加しました。(I489a7
  • 条件付き期間オペレーションのサポートを追加しました。(Iab469
  • 秒から期間を作成するためのサポートを追加しました。(Ib5fa1

API の変更

  • enable/disablePlatformSource メソッドが DynamicTypeEvaluator から削除されました。更新は呼び出し元が行う必要があります。(I78c6d
  • バインドされたデータ型のサイズを制限できるようにします。(Ie2966
  • protolayout-material に動的な内容説明のサポートを追加しました。(I62c8e
  • AnimationParameters の期間と遅延には long と @IntRange を使用します。(I388b6

バージョン 1.0.0-alpha08

2023 年 4 月 19 日

androidx.wear.protolayout:protolayout-*:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。

新機能

  • AndroidTextStyleLayoutElementBuilders に追加しました。(I8d967
  • ProtoLayout マテリアル テキストでフォント パディングを除外する設定のサポートを追加しました。(I17f5d
  • インライン画像で ARGB_8888 がサポートされるようになりました。(I18c1e
  • DynamicColoronCondition オペレーションをサポートするようになりました。(I10927

API の変更

  • 逆アニメーションのカスタム期間をサポート(I3251f
  • SemanticDescription 修飾子を追加しました。また、ContentDescription はバインドできません。(I3f1d
  • DynamicBool.isFalse() メソッドが DynamicBool.negate() に置き換えられ、DynamicBool.isTrue() が削除されました。また、NaN DynamicFloat 値と DynamicInt32DynamicFloat に縮小すると、無効な動的結果が返されるようになりました。(I6ac1e
  • int と float のフォーマッタで Builder パターンが使用されるようになりました。(Ieb213

バグの修正

  • アニメーション可能なフィールドからフォールバック静的値が削除されました。(Ifcb01
  • DynamicTypeValueReceiver#onPreUpdate を削除しました。(I2dc35
  • 動的式内の文字列の長さが制限されるようになりました。(I4c93
  • 必要な場合に、gradle の依存関係が implementation ではなく api に正しく設定されるようになりました。(I40503

バージョン 1.0.0-alpha07

2023 年 4 月 5 日

androidx.wear.protolayout:protolayout-*:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。

新機能

  • StringProp に動的な値のサポートを追加(I04342
  • バインド可能なレイアウト要素をマーク(Ia110b

API の変更

  • sensorGateway#registerSensorGatewayConsumer は、Consumer のメソッドではなく、データ型をパラメータとして受け取ります。(Icf314
  • ObservableStateStore の名前を StateStore に変更しました。(Ieb0e2
  • コンストラクタ引数の代わりに DynamicTypeEvaluator.Builder を追加し、ObservableStateStore を含むオプションの引数を増やしました。ObservableStateStore はデフォルトで空のストアになります。(I6f832
  • DynamicTypeEvaluator のパラメータの順序をリファクタリングしました。(Ic1ba4

バグの修正

  • プラットフォーム センサーソースからのシグナルを下流ノードに正しく伝播(I5a922

バージョン 1.0.0-alpha06

2023 年 3 月 22 日

androidx.wear.protolayout:protolayout-*:1.0.0-alpha06 がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。

新機能

  • 動的式で心拍数と 1 日の歩数を使用するための試験運用版 API を追加しました(Ifd711
  • アニメーションの逆方向と順方向の遅延のサポートを追加しました。(Ic25f7
  • 枠線と背景に DynamicColor のサポートを追加しました。
  • DimensionBuilder の型に動的値のサポートを追加
  • tiles-material のレイアウトとコンポーネントが protolayout-material に移動しました

API の変更

  • LoadActionListenerProtoLayoutViewInstance に追加しました。(If7806

バグの修正

  • FloatNodesTest を追加しました(Id7281
  • 構造化ビットマップを読み込めない場合にレンダラがクラッシュする問題を修正しました。

バージョン 1.0.0-alpha05

2023 年 3 月 8 日

androidx.wear.protolayout:protolayout-*:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください

新機能

  • Modifiers オブジェクトに試験運用版の「コンテンツ更新」アニメーションを追加しました。このアニメーションは、レイアウトの更新中に、この修飾子を持つ要素またはその子のいずれかが変更されるたびにトリガーされます。(bd03e5d

API の変更

  • forwardRepeatDelayMillisreverseRepeatDelayMillisRepeatable に追加しました。また、AnimationSpecdelayMillis の名前を startDelayMillis に変更しました(Ifb266
  • DynamicTypeEvaluator.bind メソッドが Executor を受け取るようになりました。(I346ab
  • BoundDynamicTypestartEvaluation メソッドを追加し、動的型がバインドされた後に評価をトリガーするようにしました。(I19908

バグの修正

  • Animator オブジェクトは、単一の要素の後続のアニメーションで再利用されます。(Ia3be9

バージョン 1.0.0-alpha04

2023 年 2 月 22 日

androidx.wear.protolayout:protolayout-*:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください

新機能

  • ObservableStateStore は、キーが削除されたときにもリスナーに通知するようになりました。
  • レンダラ スキーマ バージョンとフォント スケールを DeviceParameters に追加しました(さまざまなバージョンやフォント設定に応じてレイアウトを条件付きで作成するために使用できます)。
  • DynamicInt32 値のアニメーション化のサポートを追加しました(I05485
  • OnLoad トリガーと OnConditionalMet トリガーを追加しました。これらは、トリガーをサポートするアニメーションを開始するために使用できます。
  • 拡大ディメンションのレイアウトの重みと、ラップされたディメンションの最小サイズを追加しました。
  • 期間と瞬間の動的型を追加しました。これらは、動的式で時間インスタントまたは期間を表すために使用できます。
  • レイアウト リソースとして AnimatedVectorDrawableSeekableAnimatedVectorDrawable のサポートを追加しました。

API の変更

  • センサーデータには API 29 以上が必要です。(I8099e
  • 2 つの launchAction ヘルパー メソッド(アクティビティを起動するためのもの)を追加しました。

バグの修正

  • タイル アニメーションで set/getSpec の名前を set/getAnimationSpec に変更しました(I3d74b

バージョン 1.0.0-alpha03

2023 年 2 月 8 日

androidx.wear.protolayout:protolayout-*:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • protolayout-express ライブラリ内の Dynamic 型に toByteArray()fromByteArray() を追加しました。
  • protolayout-expression ライブラリ内の Dynamic 型に toString() を追加しました。
  • Dynamic 型の評価サポートを追加しました。protolayout-expression-pipeline ライブラリの DynamicTypeEvaluator クラスを使用して、以前作成の Dynamic 型(DynamicStringDynamicFloat など)について評価する(および更新された値を受け取る)ことができます。
  • アニメーションを(エバリュエータによって無効化されているか、実行中のアニメーションの上限に達したために)再生できない場合は、アニメーション化可能なノードに設定された静的な値が、アニメーションの置換に使用されます。

バージョン 1.0.0-alpha02

2023 年 1 月 25 日

androidx.wear.protolayout:protolayout:1.0.0-alpha02androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • androidx.wear.tiles:tiles のレイアウト ビルダーが androidx.wear.protolayout:protolayout に移動しました。androidx.wear.tiles:tiles 内のレイアウト ビルダーは次のアルファ版リリースのいずれかで非推奨となります。

バージョン 1.0.0-alpha01

2023 年 1 月 11 日

androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • このリリースでは、動的変数から式を作成するための新しいライブラリ「ProtoLayout Expression」が導入されました。