WFF menggunakan bahasa ekspresi untuk mengaktifkan:
- Mengubah tampilan menggunakan
Transform
atauGyro
- 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