Wear OS'teki dinamik ifadeler

Wear OS, kutularınızda ve özelliklerinizde gösterilen bilgilerin dinamik olarak güncellenmesini destekler.

Dinamik ifadeleri kullanarak uygulamanızın bir yüzeyinde (ör. karo veya komplikasyon) görünen verileri belirli bir veri kaynağına bağlayabilirsiniz. Platformun okuyabileceği kalp atış hızı verileri, bu tür bir veri kaynağına örnektir. Bu bağlamayı oluşturduktan sonra sistem, kutularınızdaki ve komplikasyonlarınızdaki verileri otomatik olarak günceller.

Dinamik veri bağlamaları oluşturma

Dinamik veri bağlama oluşturmak için dinamik veri türü kullanan bir değişken tanımlayın. Bu değişkeni, kullanmak istediğiniz veri akışıyla ilişkilendirin.

Örneğin, aşağıdaki kod snippet'inde gösterildiği gibi sistem saati ve sağlık bilgileriyle ilgili değerleri getirebilirsiniz.

val systemTime = DynamicInstant.platformTimeWithSecondsPrecision()
val steps: DynamicInt32 = PlatformHealthSources.dailySteps()

Sabit ifadelerden dinamik değerler de oluşturabilir ve aşağıdaki snippet'te gösterildiği gibi herhangi bir dinamik değer üzerinde aritmetik işlemler gerçekleştirebilirsiniz:

val dynamicAdditionResult = DynamicInt32.constant(1).plus(2)

Olası dinamik veri türlerinin listesi

Wear OS aşağıdaki dinamik veri türlerini destekler:

Ayrıca, aşağıdaki gibi yerleşik özellikleri kullanarak veri türünü dönüştürebilirsiniz:

  • DynamicInt32, format() kullanılarak DynamicString biçimine dönüştürmeyi destekler.
  • DynamicDuration, sürenin saniye kısmı gibi belirli bölümleri DynamicInt32 nesneleri olarak ayıklamanıza olanak tanır.

Her ekranda sınırlı sayıda dinamik ifade kullanın

Sistem, belirli bir ekranda aynı anda işleyebileceği dinamik ifadelerin sayısını sınırlar. Sistem, ek dinamik ifadeleri statik değerlere dönüştürür.

Wear OS, sabit ifadeleri de dinamik ifadeler olarak kabul eder. Örneğin, aşağıdaki kod snippet'inde 4 dinamik ifade yer almaktadır:

  1. plus() işlemi.
  2. animate() işlemi.
  3. constant(1) ifadesi.
  4. constant(2) ifadesi, plus() dinamik ifadesindeki 2 değeriyle ima edilir.

val animatedAdditionResult = DynamicInt32.constant(1).plus(2).animate()