راه‌اندازی «قالب صفحه ساعت»

توجه: این صفحه مرحله‌ای از فرایند مدیریت دستی پیکربندی صفحه ساعت را به شما نشان می‌دهد. اگر می‌خواهید صفحه ساعتتان را بااستفاده از ابزار سبک WYSIWYG (آنچه می‌بینید همان چیزی است که دریافت می‌کنید) طراحی کنید، ابتدا راهنمای استودیو صفحه ساعت را بررسی کنید.

این راهنما شامل مراحلی درباره ابزارهایی است که برای پیکربندی صفحه ساعت بااستفاده از «قالب صفحه ساعت» نیاز دارید، چند پیشنهاد درباره ساختار پروژه، و راهنمای گام‌به‌گام برای اعمال ابزارها به‌منظور ایجاد آن ساختار.

شروع به کار با «استودیو Android»

آسان‌ترین راه برای شروع توسعه دستی صفحه‌های ساعت استفاده از Android Studio است. پشتیبانی از صفحه ساعت در کانال canary دردسترس است.

  1. روی فایل > پروژه جدید کلیک کنید
  2. در بخش Wear OS، صفحه ساعت پایه را انتخاب کنید

این کار ساختار لازم را برای صفحه ساعتی که کاملاً کار می‌کند ایجاد می‌کند.

ساختار پروژه

وقتی صفحه ساعت سفارشی‌ای ایجاد می‌کنید که از «قالب صفحه ساعت» استفاده می‌کند، Android App Bundle که شامل فایل صفحه ساعت سفارشی است باید کاملاً جدا از Android App Bundle باشد که حاوی منطق برنامه Wear OS شما است. برخی‌از فروشگاه‌های برنامه، ازجمله Google Play، مانع از بارگذاری «دسته برنامه Android» می‌شوند که هم منطق Wear OS و هم صفحه ساعت سفارشی را دربرمی‌گیرد.

اعلام نسخه «قالب صفحه ساعت»

در فایل مانیفست برنامه جدیدتان (AndroidManifest.xml)، دارایی برنامه را که نشان‌دهنده استفاده شما از «قالب صفحه ساعت» است بازرسی کنید.

<property
    android:name="com.google.wear.watchface.format.version"
    android:value="4" />

برخی‌از ویژگی‌های «قالب صفحه ساعت» فقط در نسخه‌های جدیدتر دردسترس است. این دارایی را روی کمترین مقداری که از ویژگی‌های موردنیاز شما پشتیبانی می‌کند تنظیم کنید تا سازگاری دستگاه به حداکثر برسد و minSdkVersion را نیز مطابق با آن تنظیم کنید. درباره نحوه پیکربندی نسخه‌های برنامه بیشتر بدانید.

عنصر <application> باید شامل مشخصه android:hasCode="false" نیز باشد. دسته‌های «قالب صفحه ساعت» فقط منبع هستند و نمی‌توانند حاوی کد باشند.

اعلام فراداده صفحه ساعت

در فهرستگان منابع res/xml برنامه شما، فایلی به‌نام watch_face_info.xml وجود دارد. در اینجا فراداده‌های صفحه ساعتتان را تعریف می‌کنید:

<WatchFaceInfo>
    <Preview value="@drawable/preview" />
    <Category value="CATEGORY_EMPTY" />
    <AvailableInRetail value="true" />
    <MultipleInstancesAllowed value="true" />
    <Editable value="true" />
    <FlavorsSupported value="true" />
</WatchFaceInfo>

فیلدهای این فایل نشان‌دهنده جزئیات زیر است:

Preview
به عنصر طراحی‌کردنی که حاوی تصویر پیش‌نمایش صفحه ساعت است ارجاع می‌دهد.
Category

دسته صفحه ساعت را تعریف می‌کند. باید رشته یا مرجعی به رشته‌ای مثل @string/ref_name باشد. هر سازنده دستگاه می‌تواند مجموعه دسته‌های صفحه ساعت خودش را تعریف کند.

مقدار پیش‌فرض: empty_category_meta، که این صفحه ساعت را با دیگر صفحه‌های ساعت «دسته خالی» در پایین نمای انتخابگر صفحه ساعت گروه‌بندی می‌کند.

AvailableInRetail

اینکه صفحه ساعت در حالت نمایشی خرده‌فروشان دستگاه دردسترس است یا نه. باید مقدار بولی یا مرجعی به مقدار بولی مثل @bool/watch_face_available_in_retail باشد.

مقدار پیش‌فرض: false

MultipleInstancesAllowed

صفحه ساعت می‌تواند چند مورد دلخواه داشته باشد یا نه. باید مقدار بولی باشد، یا مرجعی به مقدار بولی مثل @bool/watch_face_multiple_instances_allowed.

مقدار پیش‌فرض: false

Editable

اینکه صفحه ساعت ویرایش‌پذیر باشد یا نه، یعنی صفحه ساعت تنظیمات یا حداقل یک کارافزای غیرثابت داشته باشد. از این تنظیم برای نمایش یا پنهان کردن دکمه ویرایش برای صفحه ساعت در فهرست موارد دلخواه استفاده می‌شود.

مقدار پیش‌فرض: false

اعلام نام صفحه ساعت

در فایل مانیفست برنامه (AndroidManifest.xml)، ویژگی android:label را در عنصر application روی نام صفحه ساعت تنظیم کنید.

اعلام جزئیات صفحه ساعت

ساختار سند صفحه ساعت WFF پایه به این صورت است:

<WatchFace width="450" height="450">
    <Scene>
        <!-- Content to be rendered -->
    </Scene>
</WatchFace>

الگوی «استودیو Android» سند اولیه‌ای در res/raw/watchface.xml ارائه می‌دهد. برای پشتیبانی از شکل‌ها و اندازه‌های مختلف صفحه، از چند شکل و اندازه پشتیبانی کنید.

عنصر ریشه همیشه WatchFace است. height و width وسعت فضای مختصات را برای استفاده در صفحه ساعت شما تعریف می‌کنند، و صفحه ساعت مقیاس‌بندی می‌شود تا با دستگاهی که در آن استفاده می‌شود مطابقت داشته باشد؛ height و width نشان‌دهنده پیکسل‌های واقعی نیستند.

«قالب صفحه ساعت» جزئیات مختلفی را درباره صفحه ساعتتان سازمان‌دهی می‌کند:

  • فراداده، مانند زمان و تعداد قدم‌هایی که در تصویر پیش‌نمایش صفحه ساعت نشان داده می‌شود.
  • پیکربندی‌های کاربر، مانند زمینه‌های رنگی مختلف برای صفحه ساعت، عناصر قابل‌تغییر کاربر، و انتخاب بین چند عنصر. نسخه ۲ قالب «صفحه ساعت» طعم‌ها را معرفی می‌کند که می‌تواند در پیکربندی کاربر ظاهر شود. هر طعم پیکربندی کاربر پیش‌تنظیمی را مشخص می‌کند که نوع و سبک عناصر نمایش‌داده‌شده با زمان در صفحه ساعت را تعیین می‌کند. این پیش‌تنظیم‌ها ایجاد گروه‌هایی از عناصر را که ازنظر بصری خوشایند هستند برای شما آسان‌تر می‌کنند. در برنامه همراه Wear OS، کاربران طعم‌های مختلف صفحه ساعت شما را در ردیفی پیمایش‌شدنی می‌بینند.
  • صحنه‌ای که حاوی عناصر دیداری صفحه ساعت است. عناصری که به انتهای صحنه نزدیک‌تر هستند در بالای عناصر دیگر ظاهر می‌شوند، بنابراین ترتیب معمول به این صورت است:
    • عقربه‌های ساعت آنالوگ یا نوشتار ساعت دیجیتال
    • کارافزاهایی که اطلاعات اضافی نشان می‌دهند، مثل روز هفته یا تعداد قدم‌های کاربر
    • دیگر نگاره‌هایی که جذابیت بصری یا تزئینات برای صفحه ساعت ایجاد می‌کنند، مثل تصویر اردوگاه
  • گروه‌های عنصر، که به شما امکان می‌دهند چندین عنصر را به‌طور هم‌زمان تغییر دهید. می‌توانید انواع مختلفی از این گروه‌ها را در یک صحنه ایجاد کنید که به شما امکان می‌دهد وقتی سیستم وارد حالت محیطی صرفه‌جویی در مصرف انرژی می‌شود، محتوا را به‌صورت انتخابی پنهان یا اصلاح کنید.

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

اعلام پشتیبانی از شکل‌های صفحه ساعت (اختیاری)

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

در دایرکتوری منابع res/xml برنامه‌تان، مجموعه شکل‌های صفحه ساعتی را که در watch_face_shapes.xml پشتیبانی می‌کنید اعلام کنید:

<WatchFaces>
    <WatchFace shape="CIRCLE" width="300" height="300"
        file="@raw/watchface_basic"/>
    <WatchFace shape="CIRCLE" width="450" height="450"
        file="@raw/watchface"/>
</WatchFaces>

سپس، ظاهر و عملکرد صفحه ساعت را برای هر شکل صفحه ساعت تعریف کنید. اگر فایل شکل‌ها را تعریف نکرده‌اید، فقط به یک فایل نیاز دارید، watchface.xml.

بااستفاده از مثال این بخش، فایل‌های XML خام به‌صورت زیر خواهد بود:

  • res/raw/watchface.xml
  • res/raw/watchface_basic.xml

شناسایی ناشر صفحه ساعت (اختیاری)

به‌صورت اختیاری، در فایل مانیفست برنامه‌تان، رشته‌ای اختیاری را که می‌توانید برای شناسایی ناشر صفحه ساعت یا نام و نسخه ابزاری که استفاده می‌کنید استفاده کنید، اعلام کنید:

<property
    android:name="com.google.wear.watchface.format.publisher"
    android:value="{toolName}-{toolVersion}" />

صحت و عملکرد صفحه ساعتتان را بررسی کنید

درطول توسعه و قبل‌از بارگذاری در Google Play، بااستفاده از اعتبارسنجی داخلی «قالب صفحه ساعت» در Android Studio، بررسی کنید که صفحه ساعت شما خطای دستور زبان نداشته باشد. این ویژگی به‌طور خودکار خطاها را در کد شما برجسته می‌کند و از نسخه آگاه است.

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

ساختن بسته برنامه صفحه ساعت

آسان‌ترین راه برای ساختن و پیاده‌سازی صفحه ساعت ازطریق Android Studio است که از پیکربندی‌های اجرای صفحه ساعت پشتیبانی داخلی دارد. پس‌از کلیک کردن روی دکمه اجرا، Android Studio صفحه ساعت را در دستگاه یا شبیه‌ساز مستقر می‌کند و آن را به‌عنوان صفحه ساعت فعال تنظیم می‌کند.

نمونه صفحه‌های ساعت

نمونه‌های بیشتری از پروژه‌های «قالب صفحه ساعت» در GitHub دردسترس است.