ارائه داده‌های مفید ازطریق عملکرد اضافی

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

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

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

در Wear OS، سیستم «کارافزایی» را می‌توان به دو بخش تقسیم کرد:

  1. منبع داده «عملکرد اضافی»
  2. «عملکرد اضافی» پردازش

برای مثال، یک برنامه سلامتی و تناسب اندام ممکن است منبع داده کاربرد «تعداد قدم‌های روزانه» را پیاده‌سازی کند. این کار را صفحه ساعت WFF می‌تواند انجام دهد.

منابع داده در چیدمان‌ها

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

برای مثال، منبع داده‌های پیچیدگی «گام‌های روزانه» در سلامتی و تناسب اندام ممکن است داده‌های زیر را تولید کند تا نشان دهد کاربر امروز ۲۴۰۰ گام از هدف ۱۰۰۰۰ گامی خود را برداشته است:

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

صفحه ساعت مشخص می‌کند که قادر به ارائه چه نوع ویژگی‌های اضافی است. این تنظیم تعیین می‌کند که کدام منابع داده برای کاربر دردسترس باشد تا از بین آن‌ها انتخاب کند.

در مثال «گام‌های روزانه»، در تعریف صفحه ساعت تصمیم می‌گیرید که Value و TargetValue چگونه ارائه شوند: به‌صورت نوشتار یا به‌عنوان نشانگر پیشرفت؟ این موضوع را شما به‌عنوان طراح صفحه ساعت باید تصمیم بگیرید.

تعریف عملکردهای اضافی

ارائه امکان نمایش چیدمان‌ها در صفحه ساعت می‌تواند برای کاربران ارزشمند باشد، زیرا به آن‌ها امکان می‌دهد طیف وسیع‌تری از اطلاعات را در یک نگاه داشته باشند و آن‌ها را مطابق با نیازهایشان سفارشی‌سازی کنند.

تصمیم بگیرید که در صفحه ساعتتان از چند عملکرد اضافه و به چه صورت پشتیبانی شود، شکل و جایگاه آن‌ها چگونه باشد، و از چه نوع داده‌هایی پشتیبانی کنند.

هر فضا در صفحه ساعت برای ویژگی اضافی به‌عنوان ComplicationSlot تعریف می‌شود که در آن ناحیه محدوده‌ای برای پرداز ویژگی اضافی تعریف می‌شود:

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

رویکرد مشابهی را می‌توان برای شکل‌های محدودکننده دیگر مثل مستطیل و بیضی به‌کار برد.

نوع و پیش‌فرض‌های پیچیدگی را تنظیم کنید

سیستم ویژگی اضافی انواع مختلفی را ارائه می‌دهد که به صفحه ساعت امکان می‌دهد نوع داده‌ای را که می‌تواند روی صفحه نمایش دهد بیان کند. برای مثال، کارافزای «قوس» که قبلاً نشان داده شد، برای نوع داده کارافزای مبتنی بر تصویر مثل SMALL_IMAGE مناسب نیست، اما برای داده‌های عددی مثل RANGED_VALUE می‌تواند بسیار خوب عمل کند.

در بیانیه ComplicationSlot، supportedTypes را روی فهرست جداشده با فاصله از انواع قابل پرداز در این جایگاه تنظیم کنید.

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

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

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

پرداز زدن داده‌های عملکرد اضافی

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

عناصر درون داده‌های Complication به منبع داده ویژه‌ای دسترسی دارند: COMPLICATION، که ویژگی‌های مختلف داده تنظیم‌شده توسط منبع داده پیچیدگی را ارائه می‌دهد.

برای مثال، یک کارآسانی SMALL_IMAGE می‌تواند مقادیر COMPLICATION.SMALL_IMAGE و COMPLICATION.SMALL_IMAGE_AMBIENT را تنظیم کند. این‌ها می‌توانند به‌جای منبع در عنصر Image استفاده شوند:

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

هر نوع پیچیدگی متفاوت مجموعه متفاوتی از دارایی‌های دردسترس دارد که می‌توان تنظیم کرد؛ برای مشاهده فهرست کامل هریک، مرجع Complication را ببینید. این مثال نوشتار را از یک پیچیدگی SHORT_TEXT نمایش می‌دهد:

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

بیشینه‌سازی مفید بودن هنگام پرداز کردن اطلاعات تکمیلی

هنگام افزودن ComplicationSlots به صفحه ساعت چالش‌هایی وجود دارد:

  1. انواع داده‌های «عملکرد اضافی» متعددی وجود دارد. برنامه‌های مختلف ممکن است یک یا چند مورد از این موارد را ارائه دهند.
  2. هر نوع داده «کارافزار»، علاوه بر داشتن دارایی‌های اجباری، دارایی‌های اختیاری زیادی نیز دارد. بررسی کنید که مفیدترین پرداز از دارایی‌های دردسترس، با درنظر گرفتن ترکیب‌های مختلف، ساخته شده باشد.

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

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