ウォッチフェイスの追加機能で有用なデータを提供する

ウォッチフェイスの追加機能は、追加情報を表示する機能で、アナログ ウォッチフェイスとスマートウォッチ ウォッチフェイスの両方に搭載されています。通常、追加機能に表示する情報はユーザーが選択します。

通常、ウォッチフェイスの追加機能は次のような形状があります。

  1. 方形
  2. 円形
  3. ウォッチフェイスの端に沿った円弧
  4. ウォッチフェイス全体を覆う背景

Wear OS では、ウォッチフェイスの追加機能システムは次の 2 つの部分に分けられます。

  1. ウォッチフェイスの追加機能のデータソース
  2. ウォッチフェイスの追加機能のレンダリング

たとえば、健康&フィットネス アプリは 1 日の歩数ウォッチフェイスの追加機能のデータソースを実装できます。これは WFF ウォッチフェイスでレンダリングできます。

ウォッチフェイスの追加機能のデータソース

ウォッチフェイスの追加機能のデータソースでは、レンダリングするデータとウォッチフェイスの追加機能のタイプのみを指定します。データソースは、データがウォッチフェイスにどのように表示されるかを決定する際には関与しません。

たとえば、健康とフィットネスの「1 日の歩数」ウォッチフェイスの追加機能のデータソースは、ユーザーが今日の目標歩数 10,000 歩のうち 2,400 歩を歩いたことを示す次のデータを生成します。

このデータには、レンダリング方法を示すものは何も含まれていません。

ウォッチフェイスは、レンダリングできるウォッチフェイスの追加機能のタイプを指定します。これにより、ユーザーが選択できるデータソースが決まります。

1 日の歩数の例では、ValueTargetValue をテキストとしてレンダリングするか、進行状況インジケーターとしてレンダリングするかをウォッチフェイスの定義で決定します。これは、ウォッチフェイス デザイナーが決定します。

ウォッチフェイスの追加機能を定義する

ウォッチフェイスにウォッチフェイスの追加機能を表示する機能を提供すると、ユーザーにとって有益です。ユーザーは、より幅広い情報を一目で確認し、ニーズに合わせてカスタマイズできます。

ウォッチフェイスでサポートする追加機能の有無と数、追加機能の形状と配置、追加機能でサポートするデータの種類を決定します。

ウォッチフェイスの追加機能の各スペースは、追加機能のレンダリング用に境界領域が定義された 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, PartImagePartText などの標準 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. ウォッチフェイスの追加機能のデータタイプは多数あります。アプリによって、これらの機能の 1 つまたは複数が提供される場合があります。
  2. 各ウォッチフェイスの追加機能データ型には、必須プロパティだけでなく、多くの省略可能なプロパティもあります。さまざまな組み合わせを考慮して、利用可能なプロパティから最も有用なレンダリングが作成されていることを確認します。

これらの問題に対処する戦略としては、次のものがあります。

  1. 各スロットで複数のウォッチフェイスの追加機能をサポートします。たとえば、SHORT_TEXT はウォッチフェイスの追加機能のデータソースで広くサポートされているため、小さな円形のウォッチフェイスの追加機能の SHORT_TEXT RANGED_VALUE など、さまざまなタイプをサポートすることで互換性が向上します。
  2. ウォッチフェイス全体でさまざまな追加機能のタイプを提供します。たとえば、画面端に配置された円弧型の追加機能では RANGED_VALUEGOAL_PROGRESS をサポートし、ウォッチフェイスの本文にある円形の追加機能では SHORT_TEXTSMALL_IMAGE をサポートできます。
  3. 各データ型のオプション要素を確認します。たとえば、SHORT_TEXT はタイトル プロパティと画像をサポートしています。利用可能なデータをレンダリングするレイアウトは、画像やタイトルが使用可能かどうかによって異なります。