ウォッチフェイスの追加機能は、追加情報を表示する機能で、アナログ ウォッチフェイスとスマートウォッチ ウォッチフェイスの両方に搭載されています。通常、追加機能に表示する情報はユーザーが選択します。
通常、ウォッチフェイスの追加機能は次のような形状があります。
- 方形
- 円形
- ウォッチフェイスの端に沿った円弧
- ウォッチフェイス全体を覆う背景
Wear OS では、ウォッチフェイスの追加機能システムは次の 2 つの部分に分けられます。
- ウォッチフェイスの追加機能のデータソース
- ウォッチフェイスの追加機能のレンダリング
たとえば、健康&フィットネス アプリは 1 日の歩数ウォッチフェイスの追加機能のデータソースを実装できます。これは WFF ウォッチフェイスでレンダリングできます。
ウォッチフェイスの追加機能のデータソース
ウォッチフェイスの追加機能のデータソースでは、レンダリングするデータとウォッチフェイスの追加機能のタイプのみを指定します。データソースは、データがウォッチフェイスにどのように表示されるかを決定する際には関与しません。
たとえば、健康とフィットネスの「1 日の歩数」ウォッチフェイスの追加機能のデータソースは、ユーザーが今日の目標歩数 10,000 歩のうち 2,400 歩を歩いたことを示す次のデータを生成します。
- タイプ:
GOAL_PROGRESS
- 値:
2400
- TargetValue:
10000
このデータには、レンダリング方法を示すものは何も含まれていません。
ウォッチフェイスは、レンダリングできるウォッチフェイスの追加機能のタイプを指定します。これにより、ユーザーが選択できるデータソースが決まります。
1 日の歩数の例では、Value
と TargetValue
をテキストとしてレンダリングするか、進行状況インジケーターとしてレンダリングするかをウォッチフェイスの定義で決定します。これは、ウォッチフェイス デザイナーが決定します。
ウォッチフェイスの追加機能を定義する
ウォッチフェイスにウォッチフェイスの追加機能を表示する機能を提供すると、ユーザーにとって有益です。ユーザーは、より幅広い情報を一目で確認し、ニーズに合わせてカスタマイズできます。
ウォッチフェイスでサポートする追加機能の有無と数、追加機能の形状と配置、追加機能でサポートするデータの種類を決定します。
ウォッチフェイスの追加機能の各スペースは、追加機能のレンダリング用に境界領域が定義された ComplicationSlot
として定義されます。
<ComplicationSlot slotId="1" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY"
x="0" y="0" width="225" height="225">
<BoundingArc centerX="225" centerY="225" width="450" height="450"
startAngle="270" endAngle="360" thickness="50" />
<Complication type="SHORT_TEXT">
<!-- Complication content for rendering SHORT_TEXT data goes here -->
</Complication>
<Complication type="SMALL_IMAGE">
<!-- Complication content for rendering SMALL_IMAGE data goes here -->
</Complication>
</ComplicationSlot>
同様のアプローチは、長方形や楕円形などの他の境界ボックスにも適用できます。
ウォッチフェイスの追加機能の種類とデフォルトを設定する
ウォッチフェイスの追加機能システムにはさまざまなタイプがあり、ウォッチフェイスで画面に表示できるデータの種類を表現できます。たとえば、前述の Arc ウォッチフェイスの追加機能は、SMALL_IMAGE
などの画像ベースのウォッチフェイスの追加機能のデータ型には適していませんが、RANGED_VALUE
などの数値データには適しています。
ComplicationSlot
宣言で、supportedTypes
をこのスロットでレンダリングできるタイプのスペース区切りリストに設定します。
また、EMPTY
タイプを許可する場合を除き、ComplicationSlot
のデフォルト ソースを設定する必要があります。この場合、デフォルトの設定は任意です。
<ComplicationSlot slotId="1" ...>
<BoundingArc .../>
<DefaultProviderPolicy
defaultSystemProvider="STEP_COUNT"
defaultSystemProviderType="SHORT_TEXT" />
</ComplicationSlot>
システム プロバイダを指定する必要に加えて、必要に応じてシステム以外のプロバイダを指定できます。たとえば、デフォルトで使用するサードパーティ プロバイダ(すでにインストールされている場合)などです。
追加機能データをレンダリングする
ComplicationSlot
、境界、Complication
要素を含む要素を定義したら、PartDraw, PartImage
や PartText
などの標準 WFF コンポーネントを使用してウォッチフェイスの追加機能データを表示します。
Complication
データ内の要素は、ウォッチフェイスの追加機能のデータソースによって設定されたさまざまなデータプロパティを提供する特別なデータソース COMPLICATION
にアクセスできます。
たとえば、SMALL_IMAGE
ウォッチフェイスの追加機能では、COMPLICATION.SMALL_IMAGE
値と COMPLICATION.SMALL_IMAGE_AMBIENT
値を設定できます。これらは、Image
要素のリソースの代わりに使用できます。
<Complication type="SMALL_IMAGE">
<PartImage ...>
<Image resource="[COMPLICATION.SMALL_IMAGE]" />
</PartImage>
</Complication>
ウォッチフェイスの追加機能の種類ごとに、設定可能なプロパティのセットが異なります。それぞれの一覧については、Complication
のリファレンスをご覧ください。この例では、SHORT_TEXT
ウォッチフェイスの追加機能のテキストを表示します。
<Complication type="SHORT_TEXT">
<PartText ...>
<Text>
<Font ...>
<Template>
<![CDATA[%s]]><Parameter expression="[COMPLICATION.TEXT]" />
</Template>
</Font>
</PartImage>
</Complication>
ウォッチフェイスの追加機能のレンダリング時に有用性を最大化する
ウォッチフェイスに ComplicationSlots
を追加する際には、次のような課題があります。
- ウォッチフェイスの追加機能のデータタイプは多数あります。アプリによって、これらの機能の 1 つまたは複数が提供される場合があります。
- 各ウォッチフェイスの追加機能データ型には、必須プロパティだけでなく、多くの省略可能なプロパティもあります。さまざまな組み合わせを考慮して、利用可能なプロパティから最も有用なレンダリングが作成されていることを確認します。
これらの問題に対処する戦略としては、次のものがあります。
- 各スロットで複数のウォッチフェイスの追加機能をサポートします。たとえば、
SHORT_TEXT
はウォッチフェイスの追加機能のデータソースで広くサポートされているため、小さな円形のウォッチフェイスの追加機能のSHORT_TEXT RANGED_VALUE
など、さまざまなタイプをサポートすることで互換性が向上します。 - ウォッチフェイス全体でさまざまな追加機能のタイプを提供します。たとえば、画面端に配置された円弧型の追加機能では
RANGED_VALUE
とGOAL_PROGRESS
をサポートし、ウォッチフェイスの本文にある円形の追加機能ではSHORT_TEXT
とSMALL_IMAGE
をサポートできます。 - 各データ型のオプション要素を確認します。たとえば、
SHORT_TEXT
はタイトル プロパティと画像をサポートしています。利用可能なデータをレンダリングするレイアウトは、画像やタイトルが使用可能かどうかによって異なります。