הגדרת Watch Face Format

הערה: בדף הזה מוצג שלב בתהליך של ניהול ידני של הגדרות התצוגה של השעון. אם אתם רוצים לעצב את תצוגת השעון באמצעות כלי בסגנון WYSIWYG (מה שרואים זה מה שמקבלים), כדאי קודם לעיין במדריכים של Watch Face Studio.

במדריך הזה מפורטים השלבים לשימוש בכלים שנדרשים להגדרת תצוגת שעון באמצעות Watch Face Format, כמה הצעות לגבי מבנה הפרויקט ומדריך מפורט להחלת הכלים כדי ליצור את המבנה הזה.

תחילת העבודה עם Android Studio

הדרך הקלה ביותר להתחיל לפתח תצוגות שעון באופן ידני היא באמצעות Android Studio. התמיכה בתצוגת השעון זמינה בערוץ Canary.

  1. לוחצים על קובץ > פרויקט חדש.
  2. בקטע Wear OS, בוחרים באפשרות Basic watch face.

כך נוצר המבנה הנדרש לתצוגת שעון שפועלת באופן מלא.

מבנה הפרויקט

כשיוצרים תצוגת שעון מותאמת אישית באמצעות Watch Face Format, קובץ Android App Bundle שכולל את קובץ תצוגת השעון המותאמת אישית צריך להיות נפרד לחלוטין מקובץ Android App Bundle שמכיל את הלוגיקה של אפליקציית Wear OS. חלק מחנויות האפליקציות, כולל Google Play, לא מאפשרות להעלות קובץ Android App Bundle שכולל גם לוגיקה של Wear OS וגם תצוגת שעון מותאמת אישית.

הצהרה על גרסת Watch Face Format

בקובץ המניפסט של האפליקציה החדשה (AndroidManifest.xml), בודקים את מאפיין האפליקציה שמציין את השימוש ב-Watch Face Format.

חלק מהתכונות של פורמט ללוחות שעונים זמינות רק בגרסאות מאוחרות יותר. כדי למקסם את התאימות של המכשיר, צריך להגדיר את המאפיין הזה לערך הכי נמוך שתומך בתכונות שאתם צריכים, וגם להגדיר את minSdkVersion כך שיתאים. מידע נוסף על הגדרת גרסאות של האפליקציה

<manifest ...>
    <!--
        Use SDK version 33 to support Watch Face Format (WFF) version 1 and
        higher, SDK version 34 to support WFF version 2 and higher, and so on.
    -->
    <uses-sdk
        android:minSdkVersion="34"
        android:targetSdkVersion="34" />

    <!--
        WFF is a resource-only format, so the hasCode attribute should be set to
        false to reflect this.
    -->
    <application
        android:label="@string/watch_face_name"
        android:hasCode="false"
        ...>
        <meta-data android:name="com.google.android.wearable.standalone"
            android:value="true" />
        <property
            android:name="com.google.wear.watchface.format.version"
            android:value="2" />
    </application>
</manifest>

הצהרה על מטא-נתונים של תצוגת השעון

בתיקיית המשאבים res/xml של האפליקציה, יש קובץ בשם watch_face_info.xml. כאן מגדירים את המטא-נתונים של תצוגת השעון:

<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>

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

השדות בקובץ הזה מייצגים את הפרטים הבאים:

Preview
References the drawable that contains a preview image of the watch face.
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 android:label="@string/watch_face_name" >

הצהרה על פרטי תצוגת השעון

המבנה של מסמך בסיסי של תצוגת שעון בפורמט WFF הוא כזה:

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

התבנית של Android Studio מספקת מסמך בסיסי ב-res/raw/watchface.xml. כדי לתמוך בצורות ובגדלים שונים של מסכים, צריך להצהיר על תמיכה בכמה צורות וגדלים.

רכיב הבסיס הוא תמיד WatchFace. התגים height ו-width מגדירים את גודל מרחב הקואורדינטות לשימוש בתצוגת השעון, ותצוגת השעון מותאמת לגודל המכשיר שבו היא נמצאת בשימוש. התגים height ו-width לא מייצגים פיקסלים בפועל.

ב-Watch Face Format מאורגנים כמה פרטים על תצוגת השעון:

  • מטא-נתונים, כמו השעה ומספר הצעדים שמוצגים בתמונה המקדימה של פני השעון.
  • הגדרות משתמש, כמו ערכות צבעים שונות לתצוגת השעון, אלמנטים שהמשתמש יכול להפעיל או להשבית, ואפשרות בחירה בין כמה אלמנטים. בגרסה 2 של פורמט תצוגת השעון מוצגות גרסאות, שיכולות להופיע בהגדרות של משתמש. כל סגנון מגדיר קביעה מראש של הגדרות משתמש, ומציין את הסוג והסגנון של הרכיבים שמופיעים עם השעה בתצוגת השעון. ההגדרות הקבועות מראש האלה מקלות עליכם ליצור קבוצות של רכיבים שנעים להסתכל עליהם. באפליקציה הנלווית של Wear OS, המשתמשים רואים את הגרסאות השונות של תצוגת השעון בשורה שאפשר לגלול בה.
  • סצנה שמכילה את הרכיבים החזותיים של תצוגת השעון. רכיבים שמופיעים קרוב יותר לסוף הסצנה מופיעים מעל רכיבים אחרים, ולכן הסדר הרגיל הוא כזה:
    • המחוגים של שעון אנלוגי או הטקסט של שעון דיגיטלי
    • סיבוכים שמציגים מידע נוסף, כמו היום בשבוע או מספר הצעדים של המשתמש
    • גרפיקה אחרת שמוסיפה עניין ויזואלי או קישוטים לתצוגת השעון, כמו תמונה של אתר קמפינג
  • קבוצות של רכיבים, שמאפשרות לשנות כמה רכיבים בו-זמנית. אפשר ליצור וריאציות של הקבוצות האלה בתוך סצנה, וכך להסתיר או לשנות תוכן באופן סלקטיבי כשהמערכת עוברת למצב סביבה לחיסכון באנרגיה.

המאפיינים הם בעלי הקלדה חזקה ויש הנחיות לגבי התדירות והערכים התקינים שלהם, כדי להימנע מרוב מקורות השגיאות כשיוצרים שעון.

הצהרה על תמיכה בצורות של תצוגות שעון (אופציונלי)

השלב הזה נדרש רק אם רוצים לתמוך בהתנהגות שונה עבור גדלים שונים של תצוגות שעון. אפשר לדלג על השלב הזה אם אתם רוצים שתצוגת השעון תותאם לגודל השעון.

בתיקיית המשאבים res/xml של האפליקציה, מצהירים על קבוצת הצורות של תצוגת השעון שנתמכות ב-watch_face_shapes.xml:

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

לאחר מכן, מגדירים את המראה וההתנהגות של תצוגת השעון לכל צורה של תצוגת השעון. אם לא הגדרתם קובץ צורות, אתם צריכים רק קובץ אחד, watchface.xml.

בדוגמה שבקטע הזה, קובצי ה-XML הגולמיים יהיו:

  • res/raw/watchface.xml
  • res/raw/watchface_large_circle.xml

זיהוי בעל האתר של תצוגת השעון (אופציונלי)

אופציונלי: בקובץ המניפסט של האפליקציה, אפשר להצהיר על מחרוזת שרירותית שאפשר להשתמש בה כדי לזהות את בעל האפליקציה של לוח השעון, או את שם הכלי והגרסה שבהם אתם משתמשים:

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

בדיקת הנכונות והביצועים של תצוגת השעון

במהלך הפיתוח, ולפני ההעלאה ל-Google Play, כדאי לבדוק את תצוגת השעון כדי לוודא שאין בה שגיאות תחביר. לשם כך אפשר להשתמש באימות המובנה של פורמט תצוגת השעון ב-Android Studio. הוא מדגיש באופן אוטומטי שגיאות בקוד ומודע לגרסה.

כדאי גם להריץ את הכלי memory footprint כדי לוודא שתצוגת השעון עומדת בדרישות השימוש בזיכרון.

יצירת קובץ App Bundle של תצוגת השעון

הדרך הכי קלה ליצור ולפרוס את תצוגת השעון היא באמצעות Android Studio, שכולל תמיכה מובנית בהגדרות הפעלה של תצוגות שעון. אחרי שלוחצים על הלחצן Run, ‏ Android Studio פורס את תצוגת השעון במכשיר או באמולטור ומגדיר אותה כתצוגת השעון הפעילה.

דוגמאות לתצוגות שעון

דוגמאות נוספות של פרויקטים בפורמט של עיצוב שעון זמינות ב-GitHub.