विजेट, स्मार्टवॉच और सामान्य घड़ी, दोनों की होम स्क्रीन पर मौजूद होते हैं. इनसे अतिरिक्त जानकारी मिलती है. आम तौर पर, उपयोगकर्ता यह चुनता है कि कॉम्प्लिकेशन में कौनसी जानकारी दिखाई जाए.
आम तौर पर, स्मार्टवॉच के विजेट कई तरह के होते हैं:
- आयताकार
- गोलाकार
- वॉच फ़ेस के किनारे पर मौजूद आर्क
- बैकग्राउंड, जो वॉच फ़ेस के पूरे हिस्से को कवर करता है
Wear OS में, कॉम्प्लिकेशन सिस्टम को दो हिस्सों में बांटा जा सकता है:
- कॉम्प्लिकेशन डेटा सोर्स
- स्मार्टवॉच के विजेट को रेंडर करना
उदाहरण के लिए, सेहत और फ़िटनेस से जुड़ा कोई ऐप्लिकेशन, रोज़ के कदमों की संख्या दिखाने वाले कॉम्प्लिकेशन के डेटा सोर्स को लागू कर सकता है. इसे WFF वॉच फ़ेस से रेंडर किया जा सकता है.
कॉम्प्लिकेशन में डेटा सोर्स
कॉम्प्लिकेशन डेटा सोर्स से सिर्फ़ रेंडर किए जाने वाले डेटा और कॉम्प्लिकेशन के टाइप के बारे में पता चलता है. डेटा सोर्स से यह तय नहीं होता कि स्मार्टवॉच की होम स्क्रीन पर डेटा किस तरह दिखाया जाना चाहिए.
उदाहरण के लिए, सेहत और फ़िटनेस से जुड़े, रोज़ के कदमों की जानकारी देने वाले कॉम्प्लिकेशन के डेटा सोर्स से यह डेटा मिल सकता है. इससे पता चलता है कि उपयोगकर्ता ने आज 10,000 कदमों के अपने टारगेट में से 2,400 कदम पूरे कर लिए हैं:
- टाइप:
GOAL_PROGRESS - मान:
2400 - TargetValue:
10000
ध्यान दें कि इस डेटा में ऐसा कुछ भी नहीं है जिससे यह पता चले कि इसे कैसे रेंडर किया जाना चाहिए.
वॉच फ़ेस से पता चलता है कि यह किस तरह की कॉम्प्लिकेशन रेंडर कर सकता है. इससे यह तय होता है कि उपयोगकर्ता के पास चुनने के लिए कौनसे डेटा सोर्स उपलब्ध हैं.
डेली स्टेप्स के उदाहरण में, वॉच फ़ेस की परिभाषा में यह तय किया जाता है कि 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 जोड़ने में कई समस्याएं आती हैं:
- कॉम्प्लिकेशन डेटा टाइप कई तरह के होते हैं. अलग-अलग ऐप्लिकेशन, इनमें से एक या कई सुविधाएं दे सकते हैं.
- हर कॉम्प्लिकेशन डेटा टाइप में, ज़रूरी प्रॉपर्टी के साथ-साथ कई वैकल्पिक प्रॉपर्टी भी होती हैं. यह पक्का करें कि उपलब्ध प्रॉपर्टी से सबसे काम की रेंडरिंग की गई हो. इसके लिए, अलग-अलग कॉम्बिनेशन को ध्यान में रखा गया हो.
इन समस्याओं को हल करने के लिए, ये रणनीतियां अपनाई जा सकती हैं:
- हर स्लॉट के लिए, कई तरह की कॉम्प्लिकेशन का इस्तेमाल किया जा सकता है. उदाहरण के लिए,
SHORT_TEXTको कॉम्प्लिकेशन डेटा सोर्स के साथ इस्तेमाल किया जा सकता है. इसलिए, अलग-अलग टाइप के नंबर इस्तेमाल करने से, कंपैटिबिलिटी बढ़ती है. जैसे, छोटे गोलाकार कॉम्प्लिकेशन के लिएSHORT_TEXT RANGED_VALUE. - वॉच फ़ेस पर अलग-अलग तरह की कॉम्प्लिकेशन सुविधाएं उपलब्ध कराएं. उदाहरण के लिए, किनारे पर मौजूद आर्क विजेट में
RANGED_VALUEऔरGOAL_PROGRESSका इस्तेमाल किया जा सकता है. वहीं, वॉच फ़ेस के बीच में मौजूद गोल विजेट मेंSHORT_TEXTऔरSMALL_IMAGEका इस्तेमाल किया जा सकता है. - हर डेटा टाइप के लिए, वैकल्पिक एलिमेंट देखें. उदाहरण के लिए,
SHORT_TEXTमें टाइटल प्रॉपर्टी और इमेज का इस्तेमाल किया जा सकता है. उपलब्ध डेटा को रेंडर करने के लिए, आपका लेआउट अलग-अलग हो सकता है. ऐसा इस वजह से होता है कि इमेज या टाइटल उपलब्ध है या नहीं.