Health Kit ile Uyku Takip Uygulaması Nasıl Geliştirilir?

Engin Canik
Huawei Developers - Türkiye
5 min readMar 9, 2021
Illustration by unDraw

📖 Giriş

Bu yazıda basit bir uyku takip uygulaması geliştireceğiz. Uygulamamız Huawei Health uygulaması ile bağlantılı olacak. Uyku verimiz de Huawei’nin akıllı bileklikleri ve akıllı saatleri üstünden toplanacak. Ben verileri almak ve uygulamayı test etmek için Huawei Band 4 kullanıyorum. Kullanıcıya bu verilerden uyku puanı, hafif uyku süresi, derin uyku süresi, REM uyku süresi ve toplam uyku süresini göstereceğiz.

✨ Health Kit Nedir?

Günümüz dünyasında sağlık ile ilgili uygulamalar yükselişte ve pandeminin de etkisiyle her gün yeni bir uygulama karşımıza çıkıyor. Bu nedenle Huawei bize sağlık alanındaki geliştirmelerimizi kolaylaştırmak için Health Kit’i sunuyor. Huawei, Health Kit’i uygulamalar ile servisler ve donanımlar arasında akıllı sağlık çözümleri ekosistemi için eşsiz bir bağlantı olarak tanımlıyor. Health Kit bize bu yazıda kullanacağımız uyku verisini sunmakla kalmıyor. Kullanıcıların adım sayıları, kandaki oksijen miktarları gibi birçok sağlık verisini alabilmemizi sağlıyor. Tabii ki bunların tamamının kullanıcıların rızası ile elde edilebildiğini söylemek lazım. Sağlanan tüm veri tiplerine ve açıklamalarına buradan göz atabilirsiniz.

💤 Uykuya Giriş

Uyku hayatta kalabilmemiz için yemek ve su kadar önemli bir gereklilik bizim için. Uyku olmadan vücudumuz kendini onaramaz, yeni bağlantılar kuramaz. Araştırmalar gösteriyor ki kronik olarak yaşanan uyku eksikliği veya kalitesiz uyku, obezite, şeker, depresyon, yüksek kan basıncı ve kardiyovasküler sıkıntılar dahil olmak üzere ciddi sorunlara yol açabiliyor. Uyku iki temel bölümden alışıyor. Bunlar hızlı göz hareketleri(REM) ve non-REM uyku. Non-REM uykusu da aynı şekilde iki alt bölümden meydana geliyor, hafif uyku ve derin uyku. En azından bizim kullanacağımız uyku bölümleri bu yazı için bunlar. Yazıyı kısa tutmak adına uyku evrelerini açıklamayacağım ama buradan ABD Ulusal Sağlık Enstitüsü’nün açıklamalarını okuyabilirsiniz.

🚧 Geliştirme Süreci

Health Kit ve uyku üstüne basit bir giriş yaptıktan sonra artık geliştirme sürecimize başlayabiliriz. İlk olarak HMS Core entegrasyonunu yapmamız lazım. HMS kitlerini ve servislerini kullanmamız için bu zorunlu bir adım. Bu rehberi takip ederek bunu tamamlayabilirsiniz.

Bu adımdan sonra Health Kit kullanımı için başvurmamız lazım. Bunu yapmak için AGC’ye giriş yapıp Health Kit bölümünü seçmeliyiz.

Health Kit sayfasında “Apply for Health Kit” butonuna basmalıyız. “Mobile App” seçeneğini seçip kullanacağımız proje ismini seçeneklerden seçmeliyiz. Son olarak atomik veriler ve izinleri seçememiz lazım.

Biz bir uyku takipçisi yazacağımız için uyku verisi kısmını seçeceğiz. Health Kit bizden bu konuda minimal bir yaklaşım bekliyor. Sadece kullanacağımız izinlere başvurmamızı istiyor eğer daha sonradan kullanacağınız veriler varsa onlar için kullanacağınız zaman başvurmamızı öneriyor. Health Kit için gelecek başvurularınızda aklınızda olması faydalı olacak bir diğer şey de bazı verilerin hassas olduğu ve onlar için alınan izinlerin sürecinin farklı olduğu. Genelde izin işlemi 15 dakikaya kadar zaman alabiliyor. Bizim durumumuzda bu süreç anlık olarak gerçekleşebilir ama özel bilgiler de süreç farklılığından süre çok daha uzun olabilir.

Aynı zamanda Health Kit’i, Android Studio içerisinde projemize de eklememiz lazım.

🔑 Yetkilendirme

Sağlık verisine ulaşabilmemiz için kullanıcın Huawei ID ile giriş yapılmasını sağlamamız lazım. Bunun için Account Kit ve Auth Servis kullanabiliriz.

Bu yetkilendirme süreci dışında, Health Kit yetkilendirmesini de kontrol etmemiz lazım. Kontrol sonrasındanki sonuca göre geliştirme için devam etmeye hazırız veya kullanıcı kısmının gözden geçirmemiz gerekiyor demektir.

Logo from Freepik

🅾️ Veri Kontrolcüsü

Giriş ve yetkilendirme işlemlerini tamamladığımıza göre, şimdi veri kontrolcümüzü yaratmak ve kullanıcının uyku verilerini almamız lazım.

Veri kontrolü için “Data Controller” kullanacağız ve yazının devamında da daha açık olması adına buna data controller diyeceğim. Data controller, veri üstündeki ekleme, silme, güncelleme, günlük veri çekme gibi bir çok fonksiyonu sağlıyor bize.

Biz sadece uyku verisini çekme için kullanacağız bunu.

📑 Veri Okuma

Data controller da hazır olduğuna göre artık uyku verisini okuyamaya başlayabiliriz. İlk olarak kullanıcının bugünkü verisini çekeceğiz ve sonrasında kullanıcının takvim üzerinden çektiği veriyi getireceğiz.

Uyku verisini kullanmak için bir uyku veri modeli yaratalım.

Bu bizim veri modelimiz olacak. Şimdi bugünün verisini kullanmaya hazırız.

Ufak bir hatırlamak olarak eğer “50005” hatasını alıyorsanız, “silent sign in” fonksiyonunu kullanarak kullanıcının arka planda girişini yapabilirsiniz. Çoğu zaman bu hatanın çözümü olarak yardımcı bir yöntem oldu karşılaştığım durumlarda, tabii ki bunu kullanıcı Huawei Health ile bağlantıyı kabul etmişse çözüm olarak görebiliriz. Aksi halde kullanıcıdan bunu gerçekleştirmesini istememiz lazım. Şimdi seçilen günden gelecek şekilde veri almak için gerekli fonksiyonumuzu yazalım.

Günlük okuma fonksiyonu sayesinde istersek tek bir gün istersek birden fazla günü çekebiliriz. Biz “startTime” ve “endTime” parametresi olarak aynı değeri kullanarak tek bir gün çekeceğiz. Aynı zamanda buradaki formatımızın “YYYMMDD” şeklinde olduğunu hatırlatmakta fayda var.

Veri çekme fonksiyonlarımız hazır olduğuna göre artık gelen veriyi temizlememiz ve uyku verisi objemizi doldurmamız lazım.

Bunun için Prolific Interactive tarafından geliştirilen “Material Calendar View” kütüphanesini kullanacağız. Bu kütüphaneyi kullanmamızın sebebi takvimizi boyutlandırmak için bize sunduğu seçeneklerin Android’in bize sunduğu takvim görünümünden daha işe yarar olması. Bunun için buraya bakabilirsiniz. Kütüphaneyi entegre ettikten sonra gerekli fonksiyonumuzu yazmalıyız.

Şuan veri okuma fonksiyonlarımız, takvimimiz, veri kontrolcümüz ve filtreleme işlemlerimiz hazır. Artık görselleştirme fonksiyonlarımızı yazabiliriz. Bunun için MPAndroidChart kütüphanesini kullanacağız ve verimizi pasta grafiği ile görselleştireceğiz. Bu kütüphane için buraya göz atabilirsiniz. Dokümantasyondaki adımları takip ederek kolayca entregre edebilirsiniz.

Ve bu kadar. Geliştirme sürecimizi tamamladık ve güzel görünümlü basit bir uyku takip uygulamamız artık hazır.

💡 Sonuç

Gördüğünüz üzere Health Kit kullanımı oldukça basit. Genelde yeni teknolojiler getirdiği avantajların yanında öğrenecek çok şey ile birlikte gelir ama Health Kit için bu geçerli değil. Health Kit avantajları karşılığında bizden oldukça ufak bir öğrenme süreci bekliyor. Bu yazıda basit bir uyku takip uygulaması yazdık ama geliştirmeye oldukça açık. Bir alarm seçeneği eklenebilir. Aynı şekilde Push Kit yardımıyle günaydın, iyi geceler mesajları gönderebiliriz. Basit bir detay sayfası eklemek bile kullanıcılar güzel bir seçenek olacaktır.

👇 Referanslar

--

--