Membuat ekspresi

WFF menggunakan bahasa ekspresi untuk mengaktifkan:

  • Mengubah tampilan menggunakan Transform atau Gyro
  • 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