wear protolayout
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
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
のヘルパー メソッドを追加しました。(I38531、b/390345969) - 自動リソース登録も行う M3
MaterialScope
のコンセプトをサポートするためにmaterialScopeWithResources
を追加しました。その中で、画像(backgroundImage
avatarImage
とアイコン)用の新しいヘルパー メソッドを追加しました。これを使用すると、onTileResourceRequest
でリソースを手動で登録する必要がなくなります。(I525bd、b/428692714) ProtoLayoutScope
で使用し、リソースを自動的に登録するためのImage
とImageResources
のProtoLayout
Kotlin ヘルパー。(Iada82、b/430584304)- 1 つの Lottie アニメーションのカスタマイズで許可される Lottie プロパティの数を取得するゲッターを追加しました。(I73733、b/436532706)
AndroidLottieResourceByResId
に API を追加して、プロパティで Lottie アニメーションをカスタマイズできるようにしました。また、スロット ID を指定した色でテーマ設定スロットのプロパティを作成する API を追加しました。(I301b3、b/423581481)- クリック アクションとして
PendingIntent
を受け入れるためのプロバイダ API を追加しました(I01978、b/433802488) Image.Builder
-setImageResource
に新しい API を追加して、onTileResourcesRequest
のマッピングに登録することなく、onTileRequest
の Image にリソース オブジェクトを直接設定します。(Ifa69a、b/428693523)- Tiles でのリソース処理の改善に備えて、
ProtoLayoutScope
のコンセプトを追加しました。(I132ce、b/428692423) ProtoLayout
Material3MaterialScope
がContext
フィールドを公開するようになり、スコープ内のメソッドで、渡す必要なく使用できるようになりました。(I0e5cc、b/414559956)- 見出しのセマンティック API を公開(I75299、b/413653475)
Arc/ArcLine/ArcText/DashedArcLine
で使用するためにARC_DIRECTION_*
定数を公開します。(I83959、b/427556439)
API の変更
onTileResourcesRequest
のオーバーライドの必要性をなくすImage.Builder(ProtoLayoutScope)
API とImage.Builder.setImageResource
API で利用可能な新しい自動リソース登録 API を優先して、Image.Builder()
メソッドとImage.Builder.setResourceId
メソッドを非推奨にしました。(I7bfe6、b/432758526)ProtoLayoutScope
を作成するための API を制限付きから公開に移動。ただし、システムですでに処理されている通話には使用しないでください。(I1d8e8、b/432758251)
バグの修正
ProtoTiles
でPendingIntent
をサポートするための実装を追加しました(I38167、b/430610429)invalidateLayout
メソッドを追加します。(Ief898)- デフォルトの minSdk を API 21 から API 23 に移行(Ibdfca、b/380448311、b/435705964、b/435705223)
ImageResource
にhashCode
メソッドとequals
メソッドが追加されました。(I650ee、b/428692423、b/428693523)- 新しい proto メッセージ
PendingIntentAction
とそのラッパー ビルダーを追加(Ie2aca、b/427643502) ZoneId
インスタンスの作成頻度を減らします。(I284d3)- 単一スロット
textButton
にデフォルトのコンテンツの説明を適用します。(I0dc8a、b/415001534) - レンダラ側で最大行数を調整する計算を修正しました。(I933bc、b/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
: すべてのデフォルトの意見と簡単なカスタマイズを処理しますiconEdgeButton
、textEdgeButton
iconButton
、textButton
、button
、imageButton
、avatarButton
、compactButton
titleCard
、appCard
、graphicDataCard
、iconDataCard
、textDataCard
circularProgressIndicator
、segmentedCircularProgressIndicator
primaryLayout
、buttonGroup
- すべてのコンポーネントは、任意の SDK レベルと
ProtoLayout
レンダラ バージョンで動作し、該当する場合は適切なフォールバックを提供します。
- これには、次のコンポーネントと機能用の Compose に似た API を備えた Kotlin 専用の
- 基本 ProtoLayout 要素用の Kotlin フレンドリーな Compose 風 API
LayoutModifier
。ほとんどの修飾子をチェーン関数(padding
、contentDescription
(clearSemantics
を含む)、background
、clip
、opacity
など)として追加可能。既存のModifiers
オブジェクトに変換可能- 動的フィールドと制約の使用をより簡単にサポートする型としての
LayoutColors
とLayoutString
text
、fontStyle
StateBuilder
のマップサポートの改善。DynamicDataMap
やintAppDataKey
などのファクトリ メソッドを含み、AppDataKey
オブジェクトの作成を容易にする
- Lottie アニメーションでは、アニメーションの開始タイミング(レイアウトの読み込み時やレイアウトの表示時など)に異なるトリガーを設定するオプションがサポートされています。
- グラデーションのサポートの改善:
Brush
の一部として、Box
やSpacer
などの要素の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)
Text
、Spacer
、ArcLine
、DashedArcLine
の各ビルダーは、動的値の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
: すべてのデフォルトの意見と簡単なカスタマイズを処理しますiconEdgeButton
、textEdgeButton
iconButton
、textButton
、button
、imageButton
、avatarButton
、compactButton
titleCard
、appCard
、graphicDataCard
、iconDataCard
、textDataCard
circularProgressIndicator
、segmentedCircularProgressIndicator
primaryLayout
、buttonGroup
- すべてのコンポーネントは、任意の SDK レベルと ProtoLayout Renderer バージョンで動作し、該当する場合は適切なフォールバックを提供します。
- これには、次のコンポーネントと機能用の Compose に似た API を備えた Kotlin 専用の
- 基本 ProtoLayout 要素用の Kotlin フレンドリーな Compose 風 API
LayoutModifier
。ほとんどの修飾子をチェーン関数(padding
、contentDescription
(clearSemantics
を含む)、background
、clip
、opacity
など)として追加可能。既存のModifiers
オブジェクトに変換可能- 動的フィールドと制約の使用をより簡単にサポートする型としての
LayoutColors
とLayoutString
text
、fontStyle
StateBuilder
のマップサポートの改善。DynamicDataMap
やintAppDataKey
などのファクトリ メソッドを含み、AppDataKey
オブジェクトの作成を容易にする
- Lottie アニメーションでは、アニメーションの開始タイミング(レイアウトの読み込み時やレイアウトの表示時など)に異なるトリガーを設定するオプションがサポートされています。
- グラデーションのサポートの改善:
Brush
の一部として、Box
やSpacer
などの要素の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
に変更し、新しい試験運用版 APIPlatformEventSources.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 が含まれています。
新機能
enterTransition
とexitTransition
の試験運用版の修飾子を追加しました(I4a4d6)- 全レイアウトの表示ステータスが変更されるたびに受け取れるように、プラットフォーム バインディングを追加しました。(I250c3)
- 動的な値を評価するために、テストアプリの状態とプラットフォーム データを
LayoutElementAssertionsProvider
に挿入できるようにします。(Ib5fcb) - プロトレイアウト テスト ライブラリにコーナー フィルタを追加(Ie2361)
ButtonColors
、CardColors
、ProgressIndicatorColors
でコピー メソッドがサポートされるようになりました。一部のパラメータは必要に応じてオーバーライドできます。(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
ColorScheme
にerrorDim
を追加しました。これは、優先度の高いエラーや、安全性アラートなどの緊急措置に使用されます。(Ia17bb) - グローバルなモーション軽減設定にアクセスする際にクラッシュが発生するのを防ぐガードを追加しました。このクラッシュは、その設定が提供されていない一部のプラットフォームで発生していました。(I01e2c)
API の変更
addKeyToValueMapping
の名前がaddToStateMap
に変更され、DynamicDataMap.put
メソッドは冗長だったため削除されました。(Ibe9dd)- Material3 Typography が、この軸をサポートするシステム フォントの丸み変数軸をサポートするようになりました。ProtoLayout
FontSetting
は、この軸をサポートするフォントの丸み軸をサポートしています。(I33eb5) - Material3 テキスト メソッドで
multilineAlignment
の名前を alignment に変更しました。(I2b66b) - 円形プログレス インジケーターを Box タイプに更新し、
constructGraphic
のmainContent
を Box タイプに指定(I5a3dc) - グラフでの円形進行状況インジケーターの使用のサポートを改善しました(I039db)
バグの修正
ColorStop
で動的な値を許可し、SweepGradient
の開始角度と終了角度でも動的な値を許可します。(I0146d)- ドキュメントの修正。(I4a63a)
weight
拡張ディメンションがサポートされていない場合(API 33 未満など)にフォールバックを提供するように、マテリアル 3 コンポーネント(graphicCard
とavatarButton
)を更新しました。レンダラで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)
border
、visibility
、opacity
の修飾子を追加しました。(I6d3dd)- ProtoLayout Material3 コンポーネントにアバター ボタンを追加しました。(Idb5ae)
- Material3
primaryLayout
でマージン(サイド、場合によっては下部)をカスタマイズできるようになりました。(Ib22f6) - 円形の進行状況インジケーターのセグメント化されたバリエーションを追加しました。(I6a648)
- ProtoLayout Material3 にコンパクト ボタン コンポーネントを追加しました。(Ia3c5c)
- ProtoLayout Material3 にピル型のボタンと画像ボタンのコンポーネントを追加しました。(Ifb88a)
API の変更
- 想定される動作をより適切に反映するため、
LayoutModfier.foldIn
をfoldRight
に変更しました(Idf242) VisibleOnce
トリガーが試験運用版になりました。(Ib2d26)- グラフィック ライブラリの代替手段があるため、公開 API から
withOpacity
を削除しました。(I030c2) LayoutString.kt
とLayoutColor.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) padding
、metadata
修飾子を追加しました(I8720a)background
、clip
、clickable
修飾子を追加しました(I35478)- ブラシに
LinearGradient
を追加し、背景修飾子で使用できるようにします。(Ic4dea) - appCard と
titleCard
に小さいサイズを追加。(I91f98) - ProtoLayout Material3
graphicDataCard
コンポーネントを追加しました。(I92be7) - ProtoLayout Material3 の
iconDataCard
コンポーネントとtextDataCard
コンポーネントを追加しました。(I4e1e4) - ProtoLayout Material3
appCard
コンポーネントを追加しました。(Id4c57) EdgeButtonColors
をButtonColors
に抽象化します。(I83624)- ProtoLayout Material3
titleCard
コンポーネントを追加しました。(I2dc72)
API の変更
- ProtoLayout Material3 API が
LayoutString
を受け入れるようになり、静的テキストと動的テキストの両方をサポートするようになりました。(I9c24a)
バグの修正
バージョン 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 以降ではデフォルトです)。(Id1f9b、b/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 が含まれています。
新機能
- テスト ライブラリに
LayoutElementAssertionsProvider
、LayoutElementAssertion
、LayoutElementMatcher
を追加しました(Id1110)
バージョン 1.3.0-alpha02
2024 年 10 月 16 日
androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
がリリースされました。バージョン 1.3.0-alpha02 には、これらの commit が含まれています。
新機能
- Material 3 ライブラリの初期バージョン。
text
、edgeButton
、buttonGroup
、primaryLayout
コンポーネントが含まれています。
セキュリティに関する修正
- この変更により、androidx は CVE-2024-7254 に対応するため、protobuf 4.28.2 に対してコンパイルされます。脆弱性のリスクに対処するため、
androidx.wear.protolayout:protolayout-proto
とandroidx.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-proto
とandroidx.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
以上に拡張することで、すべてのタッチ ターゲットのアクセシビリティを改善しました。 PrimaryLayout
とEdgeContentLayout
を改善し、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.weight
やFontSetting.width
などのさまざまなフォント バリエーション設定を設定する- すべての数字の文字幅を同じに設定する - 表組数字(
FontSetting.tnum
フォント機能設定) - 使用する優先フォント ファミリー名を指定することで、今後のフレックス フォントをサポートするようフォント選択 API を改善しました。
Corner
修飾子を拡張し、各CornerRadius
を個別の水平値と垂直値で指定できるようにしました。これにより、非対称の角を持つ要素を構築できます。LayoutElement
の平行移動、回転、スケーリングを提供する新しいTransformation
修飾子を追加しました。これらの変換は、動的な値を使用してアニメーション化できます。- さまざまなレイアウト方向(LTR や RTL など)でのサポートを強化するため、すべての円弧要素(
Arc
、ArcLine
、ArcText
)にClockwise
、CounterClockwise
、Normal
のオプションを含むsetArcDirection
を追加しました。 Clickable
修飾子を使用する要素のタップ可能領域を48dp
x48dp
以上に拡張することで、すべてのタップ ターゲットのユーザー補助機能を改善しました。PrimaryLayout
とEdgeContentLayout
を改善し、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 を拡張して、次の機能を追加しました。FontStyle
にフォント ファミリー API を追加し、使用するフォント ファミリーの順序リストを指定できるようにしました。(Iba9f5)- Material の
LayoutDefaults
で、コンテンツとセカンダリ ラベルの間のスペースの高さの定数の名前を変更しました。これらの定数は、当初は「Edge content」という接頭辞が付いていましたが、PrimaryLayout
とEdgeContentLayout
の両方に適用できるように、より汎用的な名前に変更されました。(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
要素にArcDirection
(Clockwise
、Counterclockwise
、Normal
)を追加できるようになりました。この動作をArc
、ArcLine
、ArcText
に追加すると、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
を追加することでグラデーションをサポートするようになりました。また、キャップに影を付け、既存のStrokeCap
にShadow
を追加することで、360 度を超える長さをより適切に表現できるようになりました。DynamicInstant
は、ゾーン付きの日付 / 時刻のフォーマットをサポートしています。DynamicInstant
とDynamicDuration
は、状態またはプラットフォームのデータ型として使用できます。- テキストサイズの自動サイズ設定機能。複数のサイズを
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)
- 指定しない場合、
RoundMode
はFloatToInt32Node
のFloor
にデフォルト設定されます。指定された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
のサポートが終了しました。動作が非常によく似た新しい APITEXT_OVERFLOW_ELLIPSIZE
を使用してください。(I822d8) - 他のマテリアル コンポーネントと Compose イニシアチブに続き、すべての Text 要素でフォント パディングがデフォルトでオフになりました。また、
AndroidTextStyle
と関連する setter が公開 API から削除されました。(I79094、Ib0b03、I32959、Iaf7d5、Ifa298、I0a4ae、Ida9d3) Modifier.hidden
がModifier.visible
に置き換えられました。(I56902)FontStyle#setSizes
がSpProp
引数ではなく 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) DynamicInstant
とDynamicDuration
は、状態またはプラットフォームのデータ型として使用できます。(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)
バグの修正
SpanText
にDynamicColor
が設定されている場合にスローするチェックを追加しました。(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
への型安全なマッピングを受け取るようになりました。つまり、DynamicDataValue
はDynamicType
で型付けされるようになります。他の 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)CompactChip
とTitleChip
でアイコンの追加がサポートされるようになりました。(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)PlatformDataProvider
のregister
/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) DynamicBool
のEqual
オペレーションとNotEqual
オペレーションをサポートします。(I6a0c1)
API の変更
FontStyles
クラスが最終版になりました(Iaa2ea)LayoutElementBuilders#FontStyles
が非推奨になりました。androidx.wear.protolayout.Typography
を使用するか、独自のFontStyle
を作成してください。(Ic929b)Action
インターフェースからAction#Builder
ネストされたインターフェースを非表示にします。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
個以上存在しないようにする必要があります。そうしないと、StateStore
の作成または更新時にIllegalStateException
が返されます。(Ibadb3)OnLoadTrigger
クラスとOnConditionMetTrigger
クラスを非表示にし、OnConditionMetTrigger
のsetTrigger
の名前をsetCondition
に変更しました。(Ibf629)- パフォーマンスと互換性の理由から、
ProtoLayout
レンダラはAnimatedVectorDrawable
リソースのすべての機能をサポートしません。サポート対象のセットを定義できるまで、これらの API は試験運用版としてマークされます。(Ic6daf) - 1 日の距離、1 日のカロリー、1 日の階数の動的型を追加しました。プラットフォームの健康に関する情報源のキーが
PlatformHealthSources.Keys
に移動しました(Ib7637) Easing.cubicBezier
メソッドはCubicBezierEasing.Builder
に置き換わります。これにより、EasingFunction
クラスが削除され、そのクラスのイージング定数がEasing
インターフェースから直接アクセスできるようになりました。また、setInfiniteRepeatable
がINFINITE_REPEATABLE_WITH_RESTART
とINFINITE_REPEATABLE_WITH_REVERSE
に置き換えられました。(Ib41e7)PlatformDataProvider
を実装して、心拍数と 1 日の歩数を提供します。SensorGateway
インターフェースが公開 API から削除されました。(I55b84)PlatformDataProvider
を追加し、プロバイダのサポートされているキーが式パイプラインのノードで必要な場合にStateStore
を更新してPlatformDataProvider
に登録します。(Ib616a)SensorGateway
は状態を保持しなくなったため、Closeable
ではなくなりました。(I6b4f7)CircularProgressIndicator
の進行状況についてDynamicFloat
でFloatProp
を使用できるようにします。これは、バージョン 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)
ArcLine
のStrokeCap
サポートを追加しました。(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 については、こちらをご覧ください。
新機能
AndroidTextStyle
をLayoutElementBuilders
に追加しました。(I8d967)ProtoLayout
マテリアル テキストでフォント パディングを除外する設定のサポートを追加しました。(I17f5d)- インライン画像で ARGB_8888 がサポートされるようになりました。(I18c1e)
DynamicColor
がonCondition
オペレーションをサポートするようになりました。(I10927)
API の変更
- 逆アニメーションのカスタム期間をサポート(I3251f)
SemanticDescription
修飾子を追加しました。また、ContentDescription
はバインドできません。(I3f1d)DynamicBool.isFalse()
メソッドがDynamicBool.negate()
に置き換えられ、DynamicBool.isTrue()
が削除されました。また、NaNDynamicFloat
値とDynamicInt32
をDynamicFloat
に縮小すると、無効な動的結果が返されるようになりました。(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 については、こちらをご覧ください。
新機能
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 の変更
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 の変更
forwardRepeatDelayMillis
とreverseRepeatDelayMillis
をRepeatable
に追加しました。また、AnimationSpec
のdelayMillis
の名前をstartDelayMillis
に変更しました(Ifb266)DynamicTypeEvaluator.bind
メソッドが Executor を受け取るようになりました。(I346ab)BoundDynamicType
にstartEvaluation
メソッドを追加し、動的型がバインドされた後に評価をトリガーするようにしました。(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
トリガーを追加しました。これらは、トリガーをサポートするアニメーションを開始するために使用できます。- 拡大ディメンションのレイアウトの重みと、ラップされたディメンションの最小サイズを追加しました。
- 期間と瞬間の動的型を追加しました。これらは、動的式で時間インスタントまたは期間を表すために使用できます。
- レイアウト リソースとして
AnimatedVectorDrawable
とSeekableAnimatedVectorDrawable
のサポートを追加しました。
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 型(DynamicString
、DynamicFloat
など)について評価する(および更新された値を受け取る)ことができます。 - アニメーションを(エバリュエータによって無効化されているか、実行中のアニメーションの上限に達したために)再生できない場合は、アニメーション化可能なノードに設定された静的な値が、アニメーションの置換に使用されます。
バージョン 1.0.0-alpha02
2023 年 1 月 25 日
androidx.wear.protolayout:protolayout:1.0.0-alpha02
、androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02
、androidx.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-alpha01
と androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01
がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- このリリースでは、動的変数から式を作成するための新しいライブラリ「ProtoLayout Expression」が導入されました。