WFF, एक्सप्रेशन लैंग्वेज का इस्तेमाल करता है, ताकि:
TransformयाGyroका इस्तेमाल करके, रंग-रूप बदलनाConditionस्टेटमेंट के ज़रिए शर्तों के हिसाब से काम करनाTemplateएलिमेंट में स्ट्रिंग फ़ॉर्मैट करना
एक्सप्रेशन लैंग्वेज, स्क्रिप्टिंग लैंग्वेज होती है. इसमें आपके सामान्य ऑपरेटर और कई ऐसे फ़ंक्शन होते हैं जिनका इस्तेमाल किया जा सकता है.
एक्सप्रेशन में डेटा सोर्स का इस्तेमाल किया जा सकता है. इन्हें स्क्वेयर ब्रैकेट का इस्तेमाल करके दिखाया जाता है. इनकी मदद से, बाहरी इनपुट पर प्रतिक्रिया दी जा सकती है. जैसे, मौजूदा तारीख और समय, सेहत और फ़िटनेस मेट्रिक या मौसम.
एक्सप्रेशन का इस्तेमाल करते समय, Transform, Template, और Condition के इस्तेमाल में मुख्य अंतर यह है कि Transform और Template के लिए, एक्सप्रेशन का नतीजा वैल्यू (उदाहरण के लिए, शामिल किए गए एलिमेंट की नई पोज़िशन) होना चाहिए. वहीं, Condition के लिए, एक्सप्रेशन का नतीजा बूलियन होना चाहिए.
Condition एलिमेंट में इस्तेमाल किए जाने पर, एक्सप्रेशन को टेक्स्ट एलिमेंट के तौर पर सेट करें. एक्सप्रेशन को CDATA एलिमेंट में रैप करें, ताकि " और & जैसे इकाई के रेफ़रंस का इस्तेमाल न करना पड़े.
<![CDATA[[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7]]>
इसकी वैल्यू, बूलियन के तौर पर मिलती है. इससे यह तय होता है कि यह वीकेंड है या नहीं. इसके लिए, DAY_OF_WEEK डेटा सोर्स का इस्तेमाल किया जाता है.
फ़ंक्शन भी इस्तेमाल किए जा सकते हैं. उदाहरण के लिए, Wear OS डिवाइस के ऐक्सिलरोमीटर के x-value के आधार पर, किसी वैल्यू को दोनों दिशाओं में पांच डिग्री तक घुमाने के लिए एक्सप्रेशन:
(5.0/90.0)*clamp([ACCELEROMETER_ANGLE_X],0,90) + (-5.0/90.0)*clamp([ACCELEROMETER_ANGLE_X],-90,0)
clamp() फ़ंक्शन, किसी वैल्यू को दो सीमाओं के बीच सीमित करता है.
एक्सप्रेशन का फिर से आकलन करना
एक्सप्रेशन को फिर से कैलकुलेट करने की फ़्रीक्वेंसी, उनमें इस्तेमाल किए गए डेटा सोर्स पर निर्भर करती है. उदाहरण के लिए, [DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7 एक्सप्रेशन का फिर से आकलन सिर्फ़ तब किया जाता है, जब नया दिन शुरू होता है. हालांकि, [SECOND] डेटा सोर्स का इस्तेमाल करने वाला एक्सप्रेशन, हर सेकंड फिर से कैलकुलेट होता है.
फिर से आकलन करने पर, सीन को फिर से कैलकुलेट किया जा सकता है और फिर से रेंडर किया जा सकता है. ऐसा एक्सप्रेशन के नतीजे में हुए बदलाव के आधार पर किया जाता है. इसलिए, ऐसे डेटा सोर्स का इस्तेमाल करना ज़रूरी है जिनकी वैल्यू को कम से कम समय में अपडेट किया जाता है. उदाहरण के लिए, यह पता लगाने के लिए कि दोपहर हो गई है या नहीं:
<!-- BAD: Re-evaluates every second --> [SECONDS_IN_DAY] > 43200
<!-- Good: Minimizes re-evaluation (1 = PM, 0 = AM) --> [AMPM_STATE] == 1
एक्सप्रेशन में कॉन्फ़िगरेशन वैल्यू
फ़ंक्शन और डेटा सोर्स के अलावा, कॉन्फ़िगरेशन वैल्यू का इस्तेमाल किया जा सकता है. उदाहरण के लिए, अगर UserConfigurations में BooleanConfiguration नाम का showBackgroundInAfternoon तय किया गया है, तो इसका इस्तेमाल किसी एक्सप्रेशन में किया जा सकता है:
<![CDATA[[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1]]>