Watch Face Format का सेटअप

ध्यान दें: इस पेज पर, वॉच फ़ेस के कॉन्फ़िगरेशन को मैन्युअल तरीके से मैनेज करने की प्रोसेस का एक चरण बताया गया है. अगर आपको WYSIWYG (आपको वही दिखता है जो आपको मिलता है) स्टाइल टूल का इस्तेमाल करके, स्मार्टवॉच की होम स्क्रीन डिज़ाइन करनी है, तो पहले Watch Face Studio की गाइड देखें.

इस गाइड में, उन टूल के बारे में बताया गया है जिनका इस्तेमाल करके, Watch Face Format का इस्तेमाल करके स्मार्टवॉच की होम स्क्रीन को कॉन्फ़िगर किया जा सकता है. साथ ही, इसमें प्रोजेक्ट के स्ट्रक्चर के बारे में कुछ सुझाव भी दिए गए हैं. इसके अलावा, स्ट्रक्चर बनाने के लिए टूल इस्तेमाल करने का तरीका भी बताया गया है.

ज़रूरी शर्तें

Watch Face Format का इस्तेमाल करने के लिए, अपने डेवलपमेंट एनवायरमेंट को तैयार करने के लिए, सेटअप करने का यह तरीका अपनाएं:

  1. Android 14 (एपीआई लेवल 34) या उसके बाद के वर्शन के लिए SDK टूल इंस्टॉल करें. अगर आपकी स्मार्टवॉच की होम स्क्रीन, वर्शन 2 की खास सुविधाओं या व्यवहार पर निर्भर नहीं है, तो Android 13 (एपीआई लेवल 33) के लिए SDK टूल इंस्टॉल किया जा सकता है.

    SDK टूल में aapt2 और android.jar जैसे अन्य ज़रूरी टूल भी शामिल हैं.

  2. इसके अलावा, Android Studio इंस्टॉल करें. इससे भी ये टूल मिल सकते हैं.

प्रोजेक्ट का स्ट्रक्चर

Watch Face Format का इस्तेमाल करने वाली कस्टम स्मार्टवॉच की होम स्क्रीन बनाने पर, उसमें शामिल Android ऐप्लिकेशन बंडल को Wear OS ऐप्लिकेशन के लॉजिक वाले Android ऐप्लिकेशन बंडल से अलग रखना ज़रूरी है. Google Play के साथ-साथ कुछ ऐप्लिकेशन स्टोर, ऐसा Android ऐप्लिकेशन बंडल अपलोड करने की अनुमति नहीं देते हैं जिसमें Wear OS लॉजिक और कस्टम स्मार्ट वॉच की होम स्क्रीन, दोनों शामिल हों.

स्मार्टवॉच की होम स्क्रीन का बंडल बनाना

स्मार्टवॉच की होम स्क्रीन की फ़ाइल दिखाने वाला Android ऐप्लिकेशन बंडल बनाने के लिए, नीचे दिए गए सेक्शन में दिया गया तरीका अपनाएं.

Watch Face Format का इस्तेमाल करने की जानकारी देना

अपने नए ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल (AndroidManifest.xml) में, ऐसी ऐप्लिकेशन प्रॉपर्टी जोड़ें जिससे पता चलता हो कि आपने Watch Face Format का इस्तेमाल किया है. अगर आपको Wear OS 5 या उसके बाद के वर्शन वाले डिवाइसों के लिए, अपनी स्मार्टवॉच की होम स्क्रीन के ऐक्सेस पर पाबंदी नहीं लगानी है, तो स्मार्टवॉच की होम स्क्रीन के लिए दो अलग-अलग APK बनाएं. पहला, जो वर्शन 2 के साथ काम करता हो और दूसरा, जो वर्शन 1 के साथ काम करता हो. अपने ऐप्लिकेशन के वर्शन कॉन्फ़िगर करने के तरीके के बारे में ज़्यादा जानें.

<manifest ...>
    <!--
        Use SDK version 34 for version 2 of WFF, and SDK version 33 for version
        1 of WFF
    -->
    <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
इससे उस ड्रॉबल का रेफ़रंस मिलता है जिसमें स्मार्टवॉच की होम स्क्रीन की झलक वाली इमेज होती है.
Category

स्मार्टवॉच की होम स्क्रीन की कैटगरी तय करता है. यह @string/ref_name जैसी स्ट्रिंग या स्ट्रिंग का रेफ़रंस होनी चाहिए. डिवाइस बनाने वाली हर कंपनी, स्मार्ट वॉच की होम स्क्रीन की कैटगरी का अपना सेट तय कर सकती है.

डिफ़ॉल्ट वैल्यू: empty_category_meta. यह वैल्यू, स्मार्ट वॉच की होम स्क्रीन चुनने वाले व्यू में सबसे नीचे, "खाली कैटगरी" वाली अन्य होम स्क्रीन के साथ इस होम स्क्रीन को ग्रुप करती है.

AvailableInRetail

होम स्क्रीन, डिवाइस के रीटेल डेमो मोड में उपलब्ध है या नहीं. यह बूलियन वैल्यू या बूलियन वैल्यू का रेफ़रंस होना चाहिए, जैसे कि @bool/watch_face_available_in_retail.

डिफ़ॉल्ट वैल्यू: false

MultipleInstancesAllowed

स्मार्टवॉच की होम स्क्रीन पर, एक से ज़्यादा पसंदीदा होम स्क्रीन हो सकती हैं या नहीं. यह बूलियन वैल्यू होनी चाहिए या @bool/watch_face_multiple_instances_allowed जैसी बूलियन वैल्यू का रेफ़रंस होनी चाहिए.

डिफ़ॉल्ट वैल्यू: false

Editable

स्मार्टवॉच की होम स्क्रीन में बदलाव किया जा सकता है या नहीं. इसका मतलब है कि स्मार्टवॉच की होम स्क्रीन में कोई सेटिंग है या कम से कम एक ऐसा विजेट है जिसे अपनी पसंद के मुताबिक बनाया जा सकता है. इसका इस्तेमाल, पसंदीदा सूची में स्मार्टवॉच की होम स्क्रीन के लिए बदलाव करें बटन को दिखाने या छिपाने के लिए किया जाता है.

डिफ़ॉल्ट वैल्यू: गलत

वॉच फ़ेस का नाम बताना

अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल (AndroidManifest.xml) में, android:label एट्रिब्यूट को अपनी स्मार्ट वॉच की होम स्क्रीन के नाम पर सेट करें:

<application android:label="@string/watch_face_name" >

स्मार्टवॉच की होम स्क्रीन की जानकारी देना

स्मार्टवॉच की होम स्क्रीन के लिए, WFF फ़ॉर्मैट में बने बुनियादी दस्तावेज़ का स्ट्रक्चर इस तरह का होता है:

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

अगर आपको सिर्फ़ एक वॉच फ़ेस बनानी है, तो इस एक्सएमएल फ़ाइल को res/raw/watchface.xml के तौर पर बनाएं. स्क्रीन के अलग-अलग आकार और साइज़ के साथ काम करने के लिए, एक से ज़्यादा आकार और साइज़ के साथ काम करने की जानकारी दें.

रूट एलिमेंट हमेशा WatchFace होता है. height और width से पता चलता है कि स्मार्टवॉच की होम स्क्रीन पर, कोऑर्डिनेट स्पेस का कितना हिस्सा इस्तेमाल किया जा सकता है. साथ ही, स्मार्टवॉच की होम स्क्रीन को उस डिवाइस के हिसाब से स्केल किया जाता है जिस पर उसका इस्तेमाल किया जा रहा है. height और width से, असल पिक्सल की जानकारी नहीं मिलती.

Watch Face Format, आपकी स्मार्टवॉच की होम स्क्रीन की कई जानकारी को व्यवस्थित करता है:

  • मेटाडेटा, जैसे कि स्मार्टवॉच की होम स्क्रीन की झलक वाली इमेज में दिखने वाला समय और कदमों की संख्या.
  • उपयोगकर्ता कॉन्फ़िगरेशन, जैसे कि आपकी स्मार्टवॉच की होम स्क्रीन के लिए अलग-अलग कलर थीम, उपयोगकर्ता के हिसाब से टॉगल किए जा सकने वाले एलिमेंट, और कई एलिमेंट में से कोई एक विकल्प. 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"/>

    <!-- Remove any references to rectangular watch faces -->
    <WatchFace shape="RECTANGLE" width="380" height="400"
               file="@raw/watchface_rectangle"/>
</WatchFaces>

इसके बाद, स्मार्टवॉच की होम स्क्रीन के हर आकार के लिए, होम स्क्रीन की दिखावट और उसके काम करने का तरीका तय करें. अगर आपने शेप फ़ाइल तय नहीं की है, तो आपको सिर्फ़ एक फ़ाइल बनानी होगी, watchface.xml.

इस सेक्शन में दिए गए उदाहरण का इस्तेमाल करके, रॉ एक्सएमएल फ़ाइलें इस तरह की होंगी:

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

वॉच फ़ेस के पब्लिशर की पहचान करना (ज़रूरी नहीं)

इसके अलावा, अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में, अपनी पसंद के मुताबिक कोई स्ट्रिंग डालें. इसका इस्तेमाल, स्मार्टवॉच की होम स्क्रीन के पब्लिशर या इस्तेमाल किए जा रहे टूल के नाम और वर्शन की पहचान करने के लिए किया जा सकता है:

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

स्मार्ट वॉच की होम स्क्रीन की परफ़ॉर्मेंस और सही होने की जांच करना

डेवलपमेंट के दौरान और Google Play पर अपलोड करने से पहले, पुष्टि करने वाले टूल का इस्तेमाल करें. इससे यह पता चलेगा कि आपके वॉच फ़ेस में कोई गड़बड़ी तो नहीं है और यह मेमोरी के इस्तेमाल से जुड़े सुझावों का पालन करता है या नहीं.

स्मार्टवॉच की होम स्क्रीन के लिए ऐप्लिकेशन बंडल बनाना

स्मार्ट वॉच की होम स्क्रीन वाला Android ऐप्लिकेशन बंडल बनाने के लिए, Gradle के बाइल्ड सिस्टम का इस्तेमाल करें. Gradle का इस्तेमाल करके ऐप्लिकेशन बनाने के तरीके के बारे में ज़्यादा जानें.

इस बारे में GitHub के सैंपल में बताया गया है.