Wear OS Geliştirme Notları

Eren ÇOLAK
Huawei Developers - Türkiye
4 min readJun 1, 2022
Image Resource

Giriş

Herkese merhaba,

Bu makalede Wear OS geliştirmeye giriş yapacağız. Wear OS geliştirmeye nereden başlamalısınız ve başlamadan önce neler bilmelisiniz bunlara değineceğiz.

Genel UI Bilgileri

  • Yuvarlak bir ekran, kare ekrana göre %22 daha az ekran alanına sahiptir.
  • Geliştirdiğiniz uygulamanın yuvarlak ve kare ekranlarda sorunsuz çalıştığına emin olun.
  • Wear OS hareket halinde olmak için tasarlandı.
  • Fragment kullanmaktan kaçınmanız ve Activity’ler ile çalışmanız tavsiye edilmektedir.
  • Geliştirdiğiniz UI bilgisayar ekranında düzgün görünüyor olabilir. Bu, saat ekranında da düzgün görüneceği anlamına gelmez. Fiziksel bir saatte de mutlaka ekran çıktısını görmelisiniz.
  • Yuvarlak ve yuvarlak olmayan ekranlar için ayrı dimension xml tanımlaması yapabilirsiniz.
kare ve yuvarlak ekranlar için farklı dimens.xml dosyaları
  • Bazı Wear OS özel ui bileşenleri; WearableRecyclerView, BoxInsetLayout, SwipeDismissFragmeLayout
Özel Wear OS bileşenleri

Wear OS Sistem Özellikleri

  • Wear OS uzun süreli oturum gerektirmeyen always-on uygulamaları derstekler.
  • Kullanıcı geliştirdiğiniz uygulamayı kullanmıyorsa, Wear OS ekrandaki uygulamayı arka plana gönderip saat arayüzüne geri döner.
  • Always-on uygulamaları ile, kullanıcı uygulamanızı kullanmıyorsa saat ambient mode’a geçer. Ambient modda işlemci kapatılır. Saat ekranında uygulamanızın sadece ön yüzü görünür.
  • Uygulamanız ambient moddayken ekranı sadece dakikada bir kez güncelleyebilirsiniz.
  • Uygulamanıza ambient mode desteği eklemek için;
  • Eğer saat için geliştirdiğiniz uygulama tüm özellikleriyle saat için geliştirilmişse telefona ihtiyaç duymaz ve kendi kendini güncelleyebilir. Örnek olarak hava durumu uygulamasını verebiliriz.
  • Bir başka örnek olarak ışıkları kapatıp açan telefondaki bir uygulamayla birlikte çalışan bir uygulama geliştirdiğinizde, sadece saatinizden telefona komut gönderebilir ve telefon uygulamasında bu komutları dinleyebilirsiniz.
Saat üzerinden diğer IOT cihazları kontrol etme
  • Wear OS Saat arayüzü içinde 3. kaynak uygulamalar ve Google üzerinden data gösterimini destekler.
CanvasWatchFaceService
  • Geliştiriciler hangi verileri saat üzerinde göstermek istiyorsa seçebilir.
ComplicationProvider
  • Kullanıcıya faydalı bilgiler sunmak istiyorsanız, ComplicationProvider’ı kullanabilirsiniz.
  • Aynı şekilde saat arayüzünde bildirime bağlı olarak çeşitli bilgiler de gösterebilirsiniz. Buna yeni mesaj uyarısını ve haber uygulamasından gelen bildirimi örnek olarak verebiliriz.
  • Pili korumak için, Wear OS uygulamanın yenileme sıklığını düşürebilir. Complication Provider yenileme aralığını dakikalar ile saniyeler arasında değiştirebilir.
  • Bildirim gösterim complication’ı önemlidir.
  • Yakın zamanda çalıştırılan uygulama complication’ı kullanılabilir.
  • Android P ile pil tüketimi %10 azaltılmıştır.
  • Job ve Alarmlar oluşturulabilir.
Wear Os özellikleri
  • Pil koruma modunda, radio, dokunma ve sallama event’leri kapatılmaktadır.

Ana Uygulama ile Bağlantı

Android tüm bağlantılı cihazları bir node olarak görmektedir. Android uygulamanızın hangisinde yüklü olduğunu bulmak için iyi bir yöntem buldu ve Wear OS sistemi bunun için bir api sunmaktadır.

Bu sayede Wear Api uygulamanızı bir cihaz üzerinde bulduğunda unique bir id üretir. Bu sayede uygulamanızın bulunması sağlanır. Basitleştirmek gerekirse, telefon ben bir watch-server’ım diye kendisini tanımlarken, saat uygulaması ise ben bir watch-client’im diye kendisini adlandırır. Bu sayede api’yi farklı cihazlarda kullanabilirsiniz. Tüm ihtiyacınız farklı yeteneklere sahip başka bir cihaz.

In Watch

In Phone

Wear OS için Veri Stratejisi

Wear OS birden fazla cihazın bir telefona bağlı olma durumunu desteklemektedir. Örnek olarak kullanıcının başka bir wear os cihazı varsa bu diğer wear os cihazları tarafından da görüntülenebilir. Cihazlar arası veri senkronizasyonunu sağlamak için, Google server’ları bağlı tüm cihazlar için ağda bir node oluşturmaktadır. Böylece sistem bağlı tüm cihazlar arasında veriyi senktronize etmektedir.

Wear OS Senkronizasyon Şeması

Aşağıdaki tabloda farklı gereksinimlere ait kullanıcı senaryolarını görebilirsiniz. Bir veri sunucusu bileşenlerin veri okuyabilmesi için bir Api sunmaktadır. ChannelClient wearable cihazlar arasında veri transferini sağlar. MessageClient ise RPG gibi remote prosedürler için cihazların birbiri arasında mesajlaşmasını sağlar.

Karşılaştırma Tablosu

Önemli Veri Katmanı Etkinliklerini Dinleyin

Servisler için, WearableListenerService’i extend ederek, önemli veri değişikliklerini dinleyebilirsiniz. WearableListenerService’in lifeCycle’ını sistem yönetmektedir. Gönderilecek data varsa listener ile bağlantı kurulur ve data gönderilir eğer yoksa, bağlantı ortadan kaldırılır.

Ön planda bir değişiklik yapılacaksa OnDataChangedListener implement edilerek değişiklikler ui tarafında handle edilebilir.

Watch Face

  • Saat eğer pil koruma moduna girerse, saat arayüzüde pil koruma moduna uygun bir saat arayüzü ile değiştirilmektedir.
  • Watch Face service içerisindeki onDraw metodunu override ederek çizgiler, yuvarlaklar şekillde çizebilir veya bitmap render edebilirsiniz.
  • Android P’den önce dark mode rengi #232E33 iken, Android P’de #000000 olarak değiştirilmiştir. Bu sayede pil ömründe artış sağlanmıştır.
  • Wear OS Jetpack Compose ile geliştirmeyi desteklemektedir.

Sonuç

Wear OS Development’a başlamadan önce bilmeniz gerekenleri anlattığımız bu yazımızda Watch Face’lere, Wear OS işletim sistemi özelliklerine, Android P’de Wear OS’da yapılan değişikliklere ve daha bir çok wear os özel component’lere değindik.

Bu yazıya katkılarından dolayı Huawei’den takım arkadaşım Enes Erkoç’a teşekkürler.

Referanslar

Wearable Data Layer

Understanding_the_Characteristics_of_Android_Wear_Os

--

--