ارائه داده های مفید از طریق عوارض

پیچیدگی ها یکی از ویژگی های صفحه ساعت های فیزیکی و ساعت هوشمند هستند که اطلاعات اضافی را نشان می دهند. به طور معمول کاربر انتخاب می کند که چه اطلاعاتی در یک عارضه نشان داده شود.

معمولاً عوارض به اشکال مختلفی ظاهر می شوند:

  1. مستطیل شکل
  2. دایره ای
  3. کمان، در امتداد لبه صفحه ساعت
  4. پس زمینه، تمام صفحه ساعت را می پوشاند

در Wear OS، سیستم Complication را می توان به دو بخش تقسیم کرد:

  1. منبع داده های پیچیدگی
  2. رندر پیچیدگی

به عنوان مثال، یک برنامه سلامت و تناسب اندام ممکن است منبع داده عارضه Daily Steps را پیاده سازی کند. این می تواند توسط صفحه ساعت WFF ارائه شود.

منابع داده در عوارض

منابع داده های عارضه فقط داده هایی را که باید ارائه شوند و نوع عارضه را مشخص می کنند. منبع داده هیچ نقشی در تعیین نحوه نمایش داده ها در صفحه ساعت ندارد.

به عنوان مثال، منبع داده عوارض سلامت و تناسب اندام روزانه ممکن است داده های زیر را تولید کند تا نشان دهد کاربر 2400 مرحله از 10000 مرحله هدف خود را امروز انجام داده است:

توجه داشته باشید که هیچ چیزی در این داده وجود ندارد که نشان دهد چگونه باید ارائه شود.

صفحه ساعت مشخص می کند که چه نوع عارضه هایی را می تواند ارائه دهد. این تعیین می کند که کدام منابع داده برای انتخاب کاربر در دسترس است.

در مورد مثال Daily Steps، شما در تعریف چهره ساعت خود تصمیم می گیرید که چگونه 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 در لیستی از انواعی که می‌توان در این شکاف رندر کرد با فاصله قرار دهید.

همچنین باید منبع پیش‌فرض را برای ComplicationSlot تنظیم کنید، مگر اینکه نوع EMPTY را مجاز کنید، در این صورت تنظیم پیش‌فرض اختیاری است:

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

علاوه بر اینکه باید ارائه دهندگان سیستم را مشخص کنید، می توانید به صورت اختیاری ارائه دهندگان غیر سیستمی مانند ارائه دهندگان شخص ثالث را برای استفاده به صورت پیش فرض، در صورتی که قبلاً نصب شده اند، مشخص کنید .

رندر داده های عارضه

پس از تعریف ComplicationSlot ، مرزها و حاوی عنصر Complication ، از مؤلفه های استاندارد WFF مانند PartDraw, PartImage و PartText برای نمایش داده های Complication استفاده کنید.

عناصر موجود در داده های 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. انواع داده های پیچیده متعددی وجود دارد. برنامه های مختلف ممکن است یکی یا بسیاری از این موارد را ارائه دهند.
  2. هر نوع داده پیچیدگی، علاوه بر داشتن ویژگی های اجباری، دارای بسیاری از ویژگی های اختیاری است. بررسی کنید که مفیدترین رندر از خواص موجود با در نظر گرفتن ترکیبات مختلف ساخته شده باشد.

برای رفع این مشکلات، برخی از استراتژی ها عبارتند از:

  1. پشتیبانی از انواع پیچیدگی های متعدد برای هر اسلات. به عنوان مثال، SHORT_TEXT به طور گسترده توسط منابع داده های پیچیده پشتیبانی می شود، بنابراین پشتیبانی از تعدادی از انواع مختلف، مانند SHORT_TEXT RANGED_VALUE برای یک عارضه دایره ای کوچک، سازگاری را افزایش می دهد.
  2. انواع مختلفی از عوارض را در صفحه ساعت ارائه دهید. به عنوان مثال، می‌توانید RANGED_VALUE و GOAL_PROGRESS در پیچیدگی‌های Arc در لبه، و SHORT_TEXT و SMALL_IMAGE را در پیچیدگی‌های دایره‌ای در بدنه صفحه ساعت پشتیبانی کنید.
  3. عناصر اختیاری را برای هر نوع داده بررسی کنید. به عنوان مثال، SHORT_TEXT به صورت اختیاری از یک ویژگی عنوان و یک تصویر پشتیبانی می کند. طرح بندی شما برای ارائه داده های موجود ممکن است بسته به موجود بودن یا نبودن یک تصویر یا عنوان متفاوت باشد.