Kadran komplikasyonları aracılığıyla yararlı veriler sağlama

Komplikasyonlar, hem fiziksel hem de akıllı saat kadranlarındaki ek bilgiler gösteren bir özelliktir. Komplikasyonlarda genellikle kullanıcı hangi bilgilerin gösterileceğini seçer.

Komplikasyonlar genellikle birkaç şekilde karşımıza çıkar:

  1. Dikdörtgen
  2. Dairesel
  3. Kadran kenarındaki yaylar
  4. Kadranın tamamını kaplayan arka plan

Wear OS'te komplikasyon sistemi iki bölüme ayrılabilir:

  1. Kadran veri kaynağı
  2. Özellik oluşturma

Örneğin, bir sağlık ve fitness uygulaması, Günlük Adımlar komplikasyonu veri kaynağını uygulayabilir. Bu, WFF kadranı tarafından oluşturulabilir.

Kadran komplikasyonlarındaki veri kaynakları

Kadran komplikasyonu veri kaynakları yalnızca oluşturulacak verileri ve komplikasyon türünü belirtir. Veri kaynağı, verilerin kadranda nasıl gösterileceğini belirlemede hiçbir rol oynamaz.

Örneğin, sağlık ve fitness Günlük Adımlar komplikasyonu veri kaynağı, kullanıcının bugün 10.000 adım hedefinin 2.400'ünü tamamladığını belirtmek için aşağıdaki verileri üretebilir:

Bu verilerde, bu öğenin nasıl oluşturulacağını belirten hiçbir şey olmadığını unutmayın.

Kadran, hangi komplikasyon türlerini oluşturabileceğini belirtir. Bu, kullanıcının hangi veri kaynaklarından seçim yapabileceğini belirler.

Günlük Adımlar örneğinde, kadran tanımınıza Value ve TargetValue öğelerinin nasıl oluşturulacağına karar verirsiniz: Metin olarak mı yoksa ilerleme göstergesi olarak mı? Bu karar, kadran tasarımcısı olarak size aittir.

Özellikleri tanımlama

Kadranınızda komplikasyon gösterme özelliği sunmak, kullanıcıların bir bakışta daha fazla bilgiye erişmesine ve bu bilgileri ihtiyaçlarına göre özelleştirmesine olanak tanıdığı için kullanıcılar için değerli olabilir.

Kadranınızda desteklenecek komplikasyonların olup olmayacağına, kaç tane komplikasyona yer verileceğine, bu komplikasyonların şekillerine ve konumlarına, destekledikleri veri türlerine karar verin.

Kadrandaki komplikasyon alanları, komplikasyonun oluşturulması için sınırlayıcı bir alan tanımlanan bir ComplicationSlot olarak tanımlanır:

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

Dikdörtgen ve elips gibi diğer sınırlayıcı şekillere de benzer bir yaklaşım uygulanabilir.

Kadran komplikasyonu türünü ve varsayılan değerleri ayarlama

Karışıklık sistemi, kadran ekranında hangi tür verileri gösterebileceğini ifade etmesine olanak tanıyan çeşitli farklı türde komplikasyonlar sağlar. Örneğin, daha önce gösterilen Arc komplikasyonu, SMALL_IMAGE gibi görüntü tabanlı bir komplikasyon veri türü için çok uygun değildir ancak RANGED_VALUE gibi sayısal veriler için çok iyi sonuç verebilir.

ComplicationSlot beyanınızda supportedTypes değerini, bu alanda oluşturulabilecek türlerin boşlukla ayrılmış listesine ayarlayın.

EMPTY türüne izin vermediğiniz sürece ComplicationSlot için varsayılan kaynağı da ayarlamanız gerekir. Bu durumda varsayılan ayarlama isteğe bağlıdır:

<ComplicationSlot slotId="1" ...>
    <BoundingArc .../>
    <DefaultProviderPolicy
        defaultSystemProvider="STEP_COUNT"
        defaultSystemProviderType="SHORT_TEXT" />
</ComplicationSlot>

Sistem sağlayıcıları belirtmenizin yanı sıra, isteğe bağlı olarak sistem dışı sağlayıcıları da belirtebilirsiniz. Örneğin, halihazırda yüklüyse varsayılan olarak kullanılacak üçüncü taraf sağlayıcıları belirtebilirsiniz.

Komplikasyon verilerini oluşturma

ComplicationSlot, sınırları ve Complication öğesini içeren alanı tanımladıktan sonra, komplikasyon verilerini görüntülemek için PartDraw, PartImage ve PartText gibi standart WFF bileşenlerini kullanın.

Complication verilerindeki öğeler özel bir veri kaynağına erişebilir: COMPLICATION. Bu veri kaynağı, komplikasyon veri kaynağı tarafından ayarlanan çeşitli veri özelliklerini sağlar.

Örneğin, bir SMALL_IMAGE komplikasyonu COMPLICATION.SMALL_IMAGE ve COMPLICATION.SMALL_IMAGE_AMBIENT değerlerini ayarlayabilir. Aşağıdakiler, Image öğesinde resource yerine kullanılabilir:

<Complication type="SMALL_IMAGE">
  <PartImage ...>
    <Image resource="[COMPLICATION.SMALL_IMAGE]" />
  </PartImage>
</Complication>

Her komplikasyon türünün, ayarlanabilen farklı bir özellik grubu vardır. Her bir komplikasyonun tam listesini Complication referansında bulabilirsiniz. Bu örnekte, bir SHORT_TEXT komplikasyonundaki metin gösterilmektedir:

<Complication type="SHORT_TEXT">
  <PartText ...>
    <Text>
      <Font ...>
        <Template>
          <![CDATA[%s]]><Parameter expression="[COMPLICATION.TEXT]" />
        </Template>
      </Font>
  </PartImage>
</Complication>

Karmaşıklıkları oluştururken kullanışlılığı en üst düzeye çıkarma

ComplicationSlots'ü kadranınıza eklerken karşılaşabileceğiniz bazı zorluklar vardır:

  1. Çok sayıda komplikasyon veri türü vardır. Farklı uygulamalar bunlardan birini veya birkaçını sağlayabilir.
  2. Her komplikasyon veri türünün zorunlu özelliklerinin yanı sıra birçok isteğe bağlı özelliği de vardır. Farklı kombinasyonlar dikkate alınarak mevcut mülklerden en yararlı oluşturma işleminin yapıldığını kontrol edin.

Bu sorunları gidermek için kullanabileceğiniz bazı stratejiler şunlardır:

  1. Her yuva için birden fazla komplikasyon türü desteklenir. Örneğin, SHORT_TEXT komplikasyon veri kaynakları tarafından oldukça yaygın bir şekilde desteklenir. Bu nedenle, küçük dairesel komplikasyon için SHORT_TEXT RANGED_VALUE gibi çeşitli türlerin desteklenmesi uyumluluğu artırır.
  2. Kadranınızda farklı komplikasyon türleri sunun. Örneğin, kenarda konumlandırılmış yay komplikasyonlarında RANGED_VALUE ve GOAL_PROGRESS'i, saat yüzünün gövdesinde bulunan dairesel komplikasyonlarda ise SHORT_TEXT ve SMALL_IMAGE'ı destekleyebilirsiniz.
  3. Her veri türü için isteğe bağlı öğeleri kontrol edin. Örneğin, SHORT_TEXT isteğe bağlı olarak bir başlık özelliği ve resim destekler. Mevcut verileri oluşturma düzeniniz, bir resim veya başlığın mevcut olup olmamasına bağlı olarak farklılık gösterebilir.