Nützliche Daten über Zusatzfunktionen bereitstellen

Mithilfe von Zusatzfunktionen können auf physischen und Smartwatch-Zifferblättern zusätzliche Informationen angezeigt werden. Normalerweise wählt der Nutzer aus, welche Informationen eine Zusatzfunktion abbildet.

Zusatzfunktionen können in der Regel in verschiedenen Formaten angezeigt werden:

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

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

  1. Die Datenquelle einer Zusatzfunktion
  2. Das Rendern einer Zusatzfunktion

Für eine Gesundheits- und Fitness-App kann beispielsweise eine Datenquelle für die Zusatzfunktion „Tägliche Schritte“ implementiert werden. Die Daten können dann vom WFF-Zifferblatt gerendert werden.

Datenquellen in Zusatzfunktionen

Die Datenquelle einer Zusatzfunktion gibt nur die darzustellenden Daten und den Funktionstyp an. Sie spielt keine Rolle bei der Darstellung der Daten auf dem Zifferblatt.

Die Datenquelle für die Zusatzfunktion „Tägliche Schritte“ einer Gesundheits- und Fitness-App kann beispielsweise die folgenden Daten liefern, welche aussagen, dass der Nutzer heute 2.400 seiner angestrebten 10.000 Schritte absolviert hat:

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

Das Zifferblatt gibt an, welche Zusatzfunktionstypen darauf gerendert werden können. Dadurch wird festgelegt, welche Datenquellen dem Nutzer zur Auswahl stehen.

Für das 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

Optionale Zusatzfunktionen für das Zifferblatt stellen einen Mehrwert für den Nutzer dar, da er damit eine größere Auswahl an Informationen auf einen Blick erhält und diese an seine Bedürfnisse anpassen kann.

Sie entscheiden, ob und wie viele Zusatzfunktionen Sie auf Ihrem Zifferblatt verfügbar machen, welche Formate und Positionen Sie dafür bereitstellen und welche Datentypen unterstützt werden.

Jeder Bereich auf dem Zifferblatt, der für eine Zusatzfunktion vorgesehen ist, wird als ComplicationSlot deklariert. Darin wird ein Begrenzungsrahmen definiert, innerhalb dessen die Funktion gerendert wird:

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

Die Vorgehensweise für andere Rahmenformen wie Rechtecke und Ovale ist ähnlich.

Zusatzfunktionstyp und Standardeinstellungen festlegen

Das Zusatzfunktionssystem bietet verschiedene Typen, mit denen angegeben wird, welche Art von Daten auf dem Zifferblatt dargestellt werden können. Eine als Bogen dargestellte Zusatzfunktion, wie oben gezeigt, eignet sich beispielsweise für numerische Daten wie RANGED_VALUE, nicht aber für einen bildbasierten Datentyp wie SMALL_IMAGE.

Definieren Sie in Ihrer ComplicationSlot-Deklaration supportedTypes als die durch Leerzeichen getrennte Liste an Typen, die in diesem Slot gerendert werden können.

Die Angabe der Standardquelle für den ComplicationSlot ist obligatorisch, außer 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>

Zwar müssen System-Provider angegeben werden, aber Sie können darüber hinaus auch andere Provider einbinden, z. B. Plug-ins, die standardmäßig verwendet werden können, sofern sie bereits installiert sind.

Zusatzfunktionsdaten rendern

Nachdem Sie das ComplicationSlot-Element, den Rahmen und das enthaltende Complication-Element definiert haben, können Sie Standard-WFF-Komponenten wie PartDraw, PartImage und PartText verwenden, um die Daten der Zusatzfunktion visuell umzusetzen.

Elemente in den Complication-Daten haben Zugriff auf eine spezielle Datenquelle: COMPLICATION. Diese liefert die Daten aus den diversen Eigenschaften, die von der Datenquelle der Zusatzfunktion gesetzt werden.

Eine SMALL_IMAGE-Zusatzfunktion 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>

Welche Eigenschaften für eine Zusatzfunktion gesetzt werden können, ist von Typ zu Typ unterschiedlich. Eine vollständige Liste finden Sie in der Complication-Dokumentation. In diesem Beispiel wird der Text einer SHORT_TEXT-Zusatzfunktion 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 Zusatzfunktionen maximieren

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

  1. Es gibt zahlreiche Datentypen für Zusatzfunktionen. Verschiedene Apps können Daten unterschiedlicher Typen bereitstellen.
  2. Jeder Datentyp für Zusatzfunktionen hat neben obligatorischen Eigenschaften auch viele, die optional gesetzt werden können. Versuchen Sie, mit Ihrem Rendering aus den verfügbaren Eigenschaften möglichst viel Nutzen zu ziehen, und berücksichtigen Sie dabei die diversen Kombinationen, die möglich sind.

Hier sind einige Strategien, um diese Herausforderungen zu stemmen:

  1. Unterstützung mehrerer Zusatzfunktionstypen in jedem Slot. Viele Datenquellen für Zusatzfunktionen liefern zum Beispiel SHORT_TEXT. Wenn Sie also eine Reihe verschiedener Typen wie SHORT_TEXT RANGED_VALUE in einer kleinen, kreisförmigen Zusatzfunktion unterstützen, erhöhen Sie damit die Kompatibilität.
  2. Geben Sie verschiedenen Zusatzfunktionstypen ein Zuhause auf Ihrem Zifferblatt. Beispielsweise könnten Sie RANGED_VALUE und GOAL_PROGRESS als bogenförmige Zusatzfunktionen am Rand des Zifferblatts rendern und SHORT_TEXT und SMALL_IMAGE in kreisförmigen Zusatzfunktionen im Hauptbereich unterstützen.
  3. Prüfen Sie, ob für die einzelnen Datentypen optionale Elemente vorhanden sind. SHORT_TEXT kann zum Beispiel Eigenschaften für einen Titel und ein Bild enthalten. Ihr Layout beim Rendern der verfügbaren Daten kann sich danach richten, ob ein Bild oder Titel verfügbar ist.