Wear OS Geliştirme Notları
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.
- Bazı Wear OS özel ui bileşenleri; WearableRecyclerView, BoxInsetLayout, SwipeDismissFragmeLayout
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.
- Wear OS Saat arayüzü içinde 3. kaynak uygulamalar ve Google üzerinden data gösterimini destekler.
- Geliştiriciler hangi verileri saat üzerinde göstermek istiyorsa seçebilir.
- 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.
- 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.
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.
Ö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.