wear protolayout

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

依存関係の宣言

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-alpha04"

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

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

Kotlin

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

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

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

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

フィードバック

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

新しい問題を報告する

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

バージョン 1.3

バージョン 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, -Xtype-enhancement-improvements-strict-modeId1f9bb/326456246

バージョン 1.3.0-alpha04

2024 年 11 月 13 日

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

新機能

  • Material3 シェイプを更新し、Wear Compose と同様に、実際のコーナー値を保持するフィールドを持つクラスにしました。(Ied8cd
  • Wear Compose と同様に、ColorScheme コンセプトを含むようにマテリアル 3 の色を更新しました。(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 はこちらをご覧ください。

新機能

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

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

  • この変更により、androidx は protobuf 4.28.2 に対してコンパイルされ、CVE-2024-7254 に対処します。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 タイル レンダラで Roboto Flex フォント ファミリーを有効にしました。(I08e94

バージョン 1.2

バージョン 1.2.1

2024 年 10 月 16 日

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

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

  • この変更により、androidx は protobuf 4.28.2 に対してコンパイルされ、CVE-2024-7254 に対処します。脆弱性リスクに対処するため、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 以上に拡張し、すべてのタップ対象のユーザー補助機能を改善しました。
  • setResponsiveContentInsetEnabled を追加して PrimaryLayoutEdgeContentLayout を改善し、さまざまな画面サイズでこれらのレイアウトのレスポンシブ動作をより適切にサポートし、タイルの一貫性を改善しました。
  • Android 14 の非線形フォント スケーリング用に、マテリアル テキストのスケーリングと非スケーリングを改善しました。
  • すべての円弧要素で RTL レイアウト方向のサポートを改善しました。

その他の変更

バージョン 1.2.0-rc01

2024 年 7 月 24 日

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

バグの修正

  • 標準のマテリアル チップを修正し、プライマリ ラベルまたはセカンダリ ラベルのいずれも渡されていない場合にのみ、アイコンとして使用できるようにしました。(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 を改善し、使用する優先フォント ファミリー名を指定して、今後の Flex フォントをサポートできるようにしました。
  • Corner 修飾子を拡張し、各 CornerRadius に水平方向と垂直方向の値を個別に指定して、非対称のコーナーを持つ要素を作成できるようにしました。
  • LayoutElement の移動、回転、スケーリングを提供する新しい Transformation 修飾子を追加しました。これらの変換は、動的値を使用してアニメーション化できます。
  • さまざまなレイアウトの向き(LTR や RTL など)をより適切にサポートするため、すべての円弧要素(ArcArcLineArcText)に ClockwiseCounterClockwiseNormal のオプションを持つ setArcDirection を追加しました。
  • Clickable 修飾子を使用する要素のタップ可能領域を少なくとも 48dp x 48dp に拡張し、すべてのタップ ターゲットのユーザー補助を改善しました。
  • setResponsiveContentInsetEnabled を追加して PrimaryLayoutEdgeContentLayout を改善し、さまざまな画面サイズでこれらのレイアウトのレスポンシブ動作をより適切にサポートし、タイルの一貫性を改善しました。これらの API の使用と簡単な修正を提案する lint 警告を追加しました。
  • Android 14 の非線形フォント スケーリング用に、マテリアル Text のスケーリングと非スケーリングを改善しました。

API の変更

  • デフォルトのフォント ファミリー名(DEFAULT_SYSTEM_FONT)は、preferredFontFamilies API を使用しないことが暗黙的に示されているため削除されました。(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 const が、ビルダークラスではなく 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
  • マテリアルの LayoutDefaults で、コンテンツとセカンダリ ラベル間のスペースの高さの定数の名前を変更しました。元々は「エッジ コンテンツ」という接頭辞が付いていましたが、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 から削除されました(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)を追加できるようになりました。この動作を ArcArcLine、または ArcText に追加すると、RTL レイアウトでの動作が修正されます。(I90699
  • EdgeContentLayout が更新され、新しい setResponsiveContentInsetEnabled セッターが追加されました。これにより、UX ガイドラインとの整合性が改善され、プライマリ ラベルを固定された上部に配置し、ラベルをレスポンシブにインセットすることで、タイルの一貫性が確保されます。(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-rc01

2024 年 1 月 24 日

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

バグの修正

  • PlatformTimeUpdateNotifierImpl は、更新を有効にした直後にティックします。(I77145
  • CircularProgressIndicator が RTL レイアウトで修正されました。今後は、すべてのケースで時計回りに表示されます。(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 で、SweepGradientBrush を追加してグラデーションをサポートし、既存の StrokeCapShadow を追加してキャップ上にシャドウを表示し、360 度を超える長さをより適切に表現できるようになりました。
  • DynamicInstant は、タイムゾーン指定の日時形式をサポートしています。DynamicInstantDynamicDuration は、状態データ型またはプラットフォーム データ型として使用できます。
  • テキストサイズの自動サイズ調整機能。複数のサイズを FontStyle.setSizes に設定できます。テキストサイズは、親の内部にあるスペースに基づいて自動的にスケーリングされます。また、TEXT_OVERFLOW_ELLIPSIZE を追加し、TEXT_OVERFLOW_ELLIPSIZE_END を非推奨にすることで、オーバーフローするテキストの省略オプションを改善しました。
  • Spacer が、オプションの重みを持つ拡張ディメンションをサポートするようになりました。ExpandedDimensionProp のビルド用にヘルパー メソッド DimensionBuilders.weight を追加しました。
  • Modifier.visible を使用してレイアウト要素を動的に非表示化および表示可能にできるようになりました。これには、BoolProp に動的値が含まれていることも含まれます。
  • すべての ProtoLayout API にスキーマ バージョン要件のアノテーションが追加され、新しい API を呼び出す前にバージョンを確認できるようになりました。
  • Clickable を持つすべての要素のターゲット領域がレンダラで 48 x 48 以上に拡張され、ユーザー補助要件をより適切にサポートできるようになりました。
  • 他のマテリアル コンポーネントと Compose のイニシアチブに沿って、すべての Text 要素でフォント パディングがデフォルトでオフになりました。また、AndroidTextStyle と関連するセッターは公開 API から削除されました。また、以下のバグが修正されました。
  • 他のコンテンツの前に配置できるように、EdgeContentLayout にエッジ コンテンツを配置するセッター機能を追加しました。
  • 認識できない列挙値が検出された場合に、常に例外をスローする。
  • 無効な数値(NaN または無限)を返すか、ArithmeticException をスローしたときに、式の結果を無効にします。

API の変更

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

バグの修正

  • 円弧要素の描画方向を設定するための制限付き API とレンダラ サポートを追加しました。(Idef5a
  • RoundMode は、指定しない場合、FloatToInt32NodeFloor にデフォルトで設定されます。指定された 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

バグの修正

  • 未定義または認識されない列挙型の値が見つかった場合に例外をスローします。(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
  • スペーサーで、幅と高さの拡張ディメンションがサポートされるようになりました。(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
  • API を拡張して、拡張する Spacer の幅または高さを指定できるようにしました。(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 については、こちらをご覧ください

新機能

  • Arcline にブラシ オプションを追加し、SweepGradient をサポートしました。(Ie7ce3
  • ゾーン付きの日時形式のサポートを追加しました。(Ibfae0
  • ゾーン付きの日時形式に必要なプロトコルと 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 については、こちらをご覧ください

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

API の変更

  • Arc 要素から setLayoutConstraintForDynamicAnchorAngle メソッドと getLayoutConstraintForDynamicAnchorAngle メソッドを削除しました。これらのメソッドは誤って追加されたもので、指定されたレイアウトには影響しませんでした。(If7d01
  • ProtoLayout のレイアウトの最大深度は、ネストされた LayoutElements 30 個に制限されています。(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 で型付けされます。HEART_RATE_ACCURACY_X 定数を PlatformHealthSources のルートに移動し、他の Android 定数の配置と一致させました。値定数の代わりに、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

バグの修正

  • 動的フィールドを使用して Prop メッセージを更新し、代わりに oneof を使用するようにする(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
  • マテリアル テキストで、getExcludeFontPadding の名前が hasExcludeFontPadding に変更されました。(Iea01d
  • すべてのチップ コンポーネントに、ラベルを完全に調整するためのセッターが追加されました。すべてのチップに最小タップ可能ターゲットが適用されるようになりました。(I8ae92
  • LayoutDefaults#BUTTON_MAX_NUMBER の名前を MAX_BUTTONS に変更しました。(I84788
  • DAILY_DISTANCE の名前が DAILY_DISTANCE_M に変更されました。(I4f758

バグの修正

  • プロパティ型のドキュメントを更新し、静的値が適用される理由を明確にしました。静的値が指定されていない場合に使用されるデフォルト値を指定します。(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#Builder ネストされたインターフェースを Action インターフェースから非表示にしました。Builder の実装は、LoadAction クラスと LaunchAction クラスですでに用意されています。(I1d70c
  • FloatProp での DynamicFloat の使用を許可します。FloatProp はレイアウト変更プロパティとして使用されないため、レイアウト制約は必要ありません。I286ac
  • LoalAction アクションと SetStateAction アクションは、まだサポートされていなかったため削除されました。(I5d6a6
  • インライン画像リソースの ARGB_8888 形式のサポートを追加しました。(I8a07c
  • StateEntryValue の名前を DynamicDataValue に変更し、DynamicDataKey を使用するように状態 API を更新しました。(If1c01
  • StateStore のインスタンスごとにメモリ使用量と状態更新時間を適切に抑制および制御するため、StateStore で許可されるエントリの数を制限しています。そのため、マップ内に MAX_STATE_ENTRY_COUNT を超えるエントリがないようにする必要があります。そうしないと、StateStore の作成または更新時に IllegalStateException が発生します。(Ibadb3
  • OnLoadTrigger クラスと OnConditionMetTrigger クラスを非表示にし、setTrigger の名前を OnConditionMetTriggersetCondition に変更しました。(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
  • マテリアル テキストで DynamicStringStringProp の使用をサポート。これは、バージョン 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 の duration と delay には long と @IntRange を使用します。(I388b6

バージョン 1.0.0-alpha08

2023 年 4 月 19 日

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

新機能

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

API の変更

  • リバース アニメーションのカスタム時間のサポート(I3251f
  • SemanticDescription 修飾子を追加しました。また、ContentDescription はバインディングできません。(I3f1d
  • DynamicBool.isFalse() メソッドは DynamicBool.negate() に置き換えられ、DynamicBool.isTrue() は削除されました。また、NaN DynamicFloat 値と DynamicInt32DynamicFloat に絞り込んだ場合、無効な動的結果が生成されるようになりました。(I6ac1e
  • Int と浮動小数点数フォーマッタでビルダー パターンが使用されるようになりました。(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 など、より多くのオプション引数を許可しました。デフォルトで空のストアになります。(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 の変更

  • LoadActionListener」を「ProtoLayoutViewInstance」に追加しました。(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 の変更

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

バグの修正

  • Animator オブジェクトは、1 つの要素の後のアニメーションで再利用されます。(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」が導入されました。