Nützliche Daten über Zusatzfunktionen bereitstellen

Zusatzfunktionen sind eine Funktion von physischen und Smartwatch-Zifferblättern, die zusätzliche Informationen anzeigen. Normalerweise wählt der Nutzer aus, welche Informationen in einer Komplikation angezeigt werden.

Zusatzfunktionen gibt es in der Regel in verschiedenen Formen:

  1. Rechteckig
  2. Kreisförmig
  3. Bögen am Rand des Zifferblatts
  4. Hintergrund, der das gesamte Zifferblatt abdeckt

In Wear OS lässt sich das System für Zifferblatt-Komplikationen in zwei Teile unterteilen:

  1. Die Datenquelle für Komplikationen
  2. Das Rendern von Zusatzfunktionen

Eine Gesundheits- und Fitness-App kann beispielsweise eine Datenquelle für die Komplikation „Tägliche Schritte“ implementieren. Das könnte vom WFF-Zifferblatt gerendert werden.

Datenquellen in Zusatzfunktionen

Datenquellen für Komplikationen geben nur die darzustellenden Daten und den Typ der Komplikation an. Die Datenquelle spielt keine Rolle bei der Darstellung der Daten auf dem Zifferblatt.

Die Datenquelle für die Komplikation „Tägliche Schritte“ für Gesundheit und Fitness kann beispielsweise die folgenden Daten liefern, um anzugeben, dass der Nutzer heute 2.400 seiner 10.000 Schritte erreicht hat:

Diese Daten enthalten keine Informationen dazu, wie sie gerendert werden sollen.

Das Zifferblatt gibt an, welche Arten von Komplikationen gerendert werden können. Dadurch wird festgelegt, welche Datenquellen dem Nutzer zur Auswahl zur Verfügung stehen.

Im Beispiel „Tägliche Schritte“ legen Sie in der Zifferblattdefinition fest, wie Value und TargetValue gerendert werden sollen: als Text oder als Fortschrittsanzeige. Das liegt in Ihrer Entscheidung als Zifferblattdesigner.

Zusatzfunktionen definieren

Die Möglichkeit, Zusatzfunktionen auf dem Zifferblatt anzuzeigen, kann für Nutzer sehr nützlich sein, da sie so eine größere Auswahl an Informationen auf einen Blick erhalten und diese an ihre Bedürfnisse anpassen können.

Entscheide, ob und wie viele Zusatzfunktionen du auf deinem Zifferblatt unterstützen möchtest, welche Formen und Positionen sie haben und welche Datentypen sie unterstützen.

Jeder Bereich auf dem Zifferblatt für eine Komplikation wird als ComplicationSlot definiert, in dem ein Begrenzungsbereich für das Rendern der Komplikation definiert ist:

<ComplicationSlot slotId="1" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY"
    x="100" y="100" width="100" height="100">
    <BoundingOval x="0"  y="0" width="100" height="100" />
    <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>

Ein ähnlicher Ansatz kann auf die anderen Begrenzungsformen wie Rechteck und Ellipse angewendet werden.

Zusatzfunktionstyp und Standardeinstellungen festlegen

Das Complication-System bietet eine Reihe verschiedener Typen, mit denen das Zifferblatt angeben kann, welche Art von Daten es auf dem Display darstellen kann. Eine Bogen-Komplikation, wie oben gezeigt, eignet sich beispielsweise nicht gut für einen bildbasierten Komplikationsdatentyp wie SMALL_IMAGE, könnte aber sehr gut für numerische Daten wie RANGED_VALUE funktionieren.

Legen Sie in Ihrer ComplicationSlot-Deklaration supportedTypes auf die durch Leerzeichen getrennte Liste der Typen fest, die in diesem Slot gerendert werden können.

Sie müssen auch die Standardquelle für ComplicationSlot festlegen, es sei denn, Sie erlauben den Typ EMPTY. In diesem Fall ist das Festlegen einer Standardquelle optional:

<ComplicationSlot slotId="2" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY"
    x="250" y="100" width="100" height="100">
    <DefaultProviderPolicy
        defaultSystemProvider="STEP_COUNT"
        defaultSystemProviderType="SHORT_TEXT" />
    <!-- ... -->
</ComplicationSlot>

Neben der Angabe von Systemanbietern können Sie optional auch Nicht-Systemanbieter angeben, z. B. Drittanbieter, die standardmäßig verwendet werden sollen, sofern sie bereits installiert sind.

Zusatzfunktionsdaten rendern

Nachdem Sie das ComplicationSlot-Element, die Grenzen und das enthaltende Complication-Element definiert haben, können Sie Standard-WFF-Komponenten wie PartDraw, PartImage und PartText verwenden, um die Daten der Komplikation anzuzeigen.

Elemente in den Complication-Daten haben Zugriff auf eine spezielle Datenquelle: COMPLICATION. Diese bietet die verschiedenen Dateneigenschaften, die von der Datenquelle für Komplikationen festgelegt werden.

Eine SMALL_IMAGE-Komplikation kann beispielsweise die Werte COMPLICATION.SMALL_IMAGE und COMPLICATION.SMALL_IMAGE_AMBIENT festlegen. Diese können anstelle von „resource“ in einem Image-Element verwendet werden:

<Complication type="SMALL_IMAGE">
    <PartImage x="0" y="0" width="100" height="100">
        <Image resource="[COMPLICATION.SMALL_IMAGE]" />
    </PartImage>
</Complication>

Für jeden Komplikationstyp gibt es eine andere Reihe verfügbarer Attribute, die festgelegt werden können. Eine vollständige Liste finden Sie in der Complication-Referenz. In diesem Beispiel wird der Text aus einer SHORT_TEXT-Kombination angezeigt:

<Complication type="SHORT_TEXT">
    <PartText x="0" y="0" width="100" height="100">
        <Text>
            <Font size="32">
                <Template>
                    <![CDATA[%s]]><Parameter expression="[COMPLICATION.TEXT]" />
                </Template>
            </Font>
        </Text>
    </PartText>
</Complication>

Nützlichkeit beim Rendern von Komplikationen maximieren

Das Hinzufügen von ComplicationSlots zu Ihrem Zifferblatt kann einige Herausforderungen mit sich bringen:

  1. Es gibt zahlreiche Arten von Komplikationsdaten. Verschiedene Apps bieten möglicherweise eine oder mehrere dieser Funktionen.
  2. Jeder Komplikationsdatentyp hat neben obligatorischen auch viele optionale Eigenschaften. Prüfen Sie, ob die nützlichste Darstellung aus den verfügbaren Attributen erstellt wird, wobei die verschiedenen Kombinationen berücksichtigt werden.

Hier sind einige Strategien, um diese Probleme zu beheben:

  1. Unterstützung mehrerer Komplikationstypen für jeden Slot. SHORT_TEXT wird beispielsweise von vielen Datenquellen für Komplikationen unterstützt. Wenn du also eine Reihe verschiedener Typen wie SHORT_TEXT RANGED_VALUE für eine kleine kreisförmige Komplikation unterstützt, erhöhst du die Kompatibilität.
  2. Bieten Sie verschiedene Arten von Komplikationen auf dem Zifferblatt an. Beispielsweise könnten Sie RANGED_VALUE und GOAL_PROGRESS für Zusatzfunktionen vom Typ „Bogen“ an den Rändern und SHORT_TEXT und SMALL_IMAGE für kreisförmige Zusatzfunktionen im Hauptbereich des Zifferblatts unterstützen.
  3. Prüfen Sie, ob für die einzelnen Datentypen optionale Elemente vorhanden sind. SHORT_TEXT unterstützt beispielsweise optional eine Titel-Eigenschaft und ein Bild. Das Layout für das Rendern der verfügbaren Daten kann sich je nachdem unterscheiden, ob ein Bild oder Titel verfügbar ist.