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]]>