WFF menggunakan bahasa ekspresi untuk mengaktifkan:
- Mengubah tampilan menggunakan
TransformatauGyro - Perilaku bersyarat melalui pernyataan
Condition - Pemformatan string dalam elemen
Template
Bahasa ekspresi adalah bahasa skrip yang berisi operator umum dan berbagai fungsi yang dapat digunakan.
Ekspresi dapat menggunakan sumber data—diwakili menggunakan tanda kurung siku—untuk memungkinkan Anda bereaksi terhadap input eksternal seperti tanggal dan waktu saat ini, metrik kesehatan dan kebugaran, atau bahkan cuaca.
Saat menggunakan ekspresi, perbedaan utama antara penggunaan Transform atau Template dan
Condition adalah bahwa Transform dan Template mengharuskan ekspresi menghasilkan
nilai (misalnya, posisi baru elemen yang melingkupi) sedangkan
Condition mengharuskan ekspresi menghasilkan boolean.
Misalnya, Condition mungkin menggunakan:
[DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] == 7
Ini dievaluasi menjadi boolean dan menentukan apakah hari ini akhir pekan atau bukan,
menggunakan sumber data DAY_OF_WEEK.
Fungsi juga didukung—misalnya, ekspresi untuk memutar
nilai hingga 5 derajat ke salah satu arah—berdasarkan x-value akselerometer
perangkat Wear OS:
(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) +
(-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)
Fungsi clamp() membatasi nilai dalam dua batas.
Evaluasi ulang ekspresi
Frekuensi evaluasi ulang ekspresi bergantung pada sumber data yang digunakan di dalamnya. Misalnya, ekspresi [DAY_OF_WEEK] == 6 || [DAY_OF_WEEK] ==
7 hanya dievaluasi ulang saat hari baru dimulai. Namun, ekspresi
yang menggunakan sumber data [SECOND] akan dievaluasi ulang setiap detik.
Evaluasi ulang dapat menyebabkan penghitungan ulang dan rendering ulang tampilan, berdasarkan perubahan pada hasil ekspresi. Oleh karena itu, penting untuk selalu menggunakan sumber data yang mengevaluasi ulang sesering mungkin. Misalnya, untuk menentukan apakah saat ini siang hari:
// Bad - re-evaluates every second
[SECONDS_IN_DAY] > 43200
// Good - limits re-evaluation frequency (1 = PM, 0 = AM)
[AMPM_STATE] == 1
Nilai konfigurasi dalam ekspresi
Selain fungsi dan sumber data, nilai konfigurasi dapat digunakan. Misalnya,
jika di UserConfigurations, BooleanConfiguration bernama
showBackgroundInAfternoon telah ditentukan, ini dapat digunakan dalam ekspresi:
[CONFIGURATION.showBackgroundInAfternoon] == "TRUE" && [AMPM_STATE] == 1