HealthKit: Nedir, Nasıl Çalışır ve Entegrasyon

Yazar: IT Sectr Yayınlanma: 2026-03-25 Okuma süresi: 8 dk

HealthKit çerçevesi, iPhone, Apple Watch ve üçüncü taraf cihazlardan gelen verileri güvenli bir yerel depoda toplayan Apple sağlık ekosisteminin merkezi bir bileşenidir. Apple Developer Documentation, 2025'e göre platform, fiziksel aktivite ve uykudan laboratuvar testlerine ve kardiyovasküler göstergelere kadar 100'den fazla veri türünü destekler. Tek bir depo tıbbi bilgi, her veri türü için ayrıntılı erişim kontrolü ile uygulamalar arasında kesintisiz senkronizasyon sağlar.

Önemli Noktalar

  • HealthKit, iOS uygulamaları arasında sağlık verilerini toplamak, depolamak ve paylaşmak için Apple'ın çerçevesidir.
  • HKHealthStore, uygulamaların sağlık verileriyle etkileşime geçtiği merkezi nesnedir.
  • Veri türleri nicel HKQuantityType ve kategorik HKCategoryType olarak ikiye ayrılır.
  • Gizlilik — her uygulama, her veri türü için ayrı ayrı okuma ve yazma izni ister.
  • Apple Watch, aktivite, kalp atış hızı ve antrenman verilerini otomatik olarak HealthKit'e iletir.

HealthKit Nedir?

HealthKit, 2014 yılında iOS 8 ile birlikte tanıtılan, kullanıcının sağlık ve fitness verilerinin merkezi yönetimi için tasarlanmış bir Apple çerçevesidir. Platform, uygulamaların ve cihazların tıbbi bilgileri yazabileceği ve okuyabileceği birleşik bir depo görevi görür.

Üçüncü taraf çözümlerin aksine, HealthKit doğrudan iOS işletim sistemine entegre edilmiştir ve donanım düzeyinde yüksek performans ve güvenlik sağlar. Uygulamaların birbirine doğrudan erişimi yoktur — tüm işlemler merkezi HKHealthStore üzerinden gerçekleşir.

Apple WWDC 2024'e göre, ABD'deki iPhone kullanıcılarının %87'sinden fazlası, HealthKit'i temel alan yerleşik Sağlık uygulamasını en az bir kez kullanmıştır. Ekosistem, fitness takipçilerinden tele-tıp hizmetlerine kadar binlerce üçüncü taraf uygulamayı içerir.

HealthKit Mimarisi

HealthKit mimarisi, her veri kaynağı için izole edilmiş kapsayıcılarla çok seviyeli depolama prensibi üzerine inşa edilmiştir. Alt seviyede, donanım AES-256 ile şifrelenmiş bir SQLite veritabanı bulunur. Üst seviyede ise HKHealthStore — birleşik etkileşim arayüzü bulunur.

Her kayıt, HKSource kaynağı, HKDevice cihazı, tarih, saat ve bir iCloud senkronizasyon bayrağı gibi meta veriler içerir. Sistem, aynı kaynaktan gelen yinelenen kayıtları otomatik olarak tekilleştirerek veri bozulmasını önler.

Veriler türlere göre gruplandırılır — sayısal göstergeler için HKQuantityType (kalp atış hızı, adımlar, kaloriler) ve kategorik olaylar için HKCategoryType (uyku, semptomlar, adet döngüsü). Bu yapı, HKSampleQuery veya HKStatisticsQuery aracılığıyla herhangi bir parametre kombinasyonunun esnek bir şekilde sorgulanmasına olanak tanır.

HealthKit'te Veri Türleri

HealthKit, 100'den fazla standartlaştırılmış veri türünü destekler ve bunlar kategorilere ayrılır: fiziksel aktivite, beslenme, uyku, kardiyovasküler sistem, üreme sağlığı, laboratuvar sonuçları ve yaşamsal belirtiler. Her türün bir HKUnit ölçüm birimi ve bir erişim seviyesi vardır.

Geliştiriciler ayrıca HKCorrelation aracılığıyla özel korelasyonlar oluşturabilir — ilgili ölçümlerin bir grubu. Örneğin, bir yemek kaydı, kalori, protein, yağ ve karbonhidratları tek bir nesne olarak içerebilir. Glikoz seviyeleri gibi sıralı ölçümler için HKSeriesSample kullanılır.

HealthKit ile çalışmak, çerçeve içe aktarıldığında otomatik olarak oluşturulan bir singleton olan HKHealthStore'u tanımlamakla başlar. Uygulama, mağaza aracılığıyla platformun cihazda kullanılabilir olup olmadığını kontrol eder, çünkü iPad ve iPod touch'ta destek bulunmayabilir. HealthKit'in Mac Catalyst'te kullanılamadığını da unutmamak önemlidir — macOS için ayrı bir uygulama gerekir.

swift
import HealthKit

let healthStore = HKHealthStore()

let stepType = HKQuantityType
    .quantityType(forIdentifier: .stepCount)

let heartRateType = HKQuantityType
    .quantityType(forIdentifier: .heartRate)

let typesToRead: Set = [stepType, heartRateType]

HealthKit Nasıl Çalışır

HealthKit, eşzamansız bir yayınla-abone ol modeli kullanarak veri kaynakları ve uygulamalar arasında bir arabulucu görevi görür. Kaynak uygulama, HKHealthStore aracılığıyla veri yazar ve abone uygulamalar, arka planda çalışan HKObserverQuery aracılığıyla yeni kayıt bildirimleri alır.

Çerçeve, iCloud aracılığıyla arka plan senkronizasyonunu destekler: kullanıcı oturum açtıysa, HealthKit verileri otomatik olarak gerçek zamanlı olarak tüm Apple cihazlarına dağıtır. Ağ olmadığında, değişiklikler yerel olarak arabelleğe alınır ve bağlantı geri yüklendiğinde veri kaybı olmadan senkronize edilir.

Apple'a göre, iPhone ve Apple Watch arasındaki senkronizasyon gecikmesi aktivite verileri için 30 saniyeden azdır. Diğer türler — uyku, beslenme, laboratuvar sonuçları — için senkronizasyon, pil tasarrufu için 15 dakikaya kadar aralıklarla bir programa göre gerçekleşir.

HKHealthStore ve Veri İşlemleri

HKHealthStore, tüm işlemlerin gerçekleştirildiği merkezi singleton'dur: saveObject ile kaydetme, execute ile okuma ve deleteObject ile silme. Her işlem eşzamansızdır ve bir closure aracılığıyla sonuç döndürür, bu da uygun hata yönetimi gerektirir.

Sorgular birkaç türe ayrılır: HKSampleQuery ölçütlere göre kayıtları almak için, HKStatisticsQuery toplu veriler için — toplam, ortalama, minimum, maksimum — ve HKObserverQuery gerçek zamanlı değişiklikleri izlemek için. Periyodik arka plan güncellemeleri için HKHeartbeatSeriesQuery kullanılır.

swift
let type = HKQuantityType
    .quantityType(forIdentifier: .stepCount)
let now = Date()
let start = Calendar.current
    .date(
        byAdding: .day,
        value: -7,
        to: now
    )
let predicate = HKQuery
    .predicateForSamples(
        withStart: start,
        end: now,
        options: .strictStartDate
    )
let query = HKSampleQuery(
    sampleType: type,
    predicate: predicate,
    limit: 100
) { _, samples, _ in
    for sample in samples as [HKQuantitySample] {
        print(sample.quantity)
    }
}
healthStore.execute(query)

Bir Uygulamaya HealthKit Entegrasyonu

HealthKit entegrasyonu, Xcode'da HealthKit yeteneğini etkinleştirmek ve projeye entitlement eklemekle başlar. Bundan sonra uygulama, requestAuthorization çağrısı aracılığıyla belirli veri türlerine erişim izni ister. Önemli: HealthKit simülatörde kullanılamaz ve iOS'lu fiziksel bir cihaz gerektirir.

Entegrasyon süreci üç aşamadan oluşur: veri türlerini tanımlama, yetkilendirme isteme ve okuma ve yazma işlemlerini gerçekleştirme. Her aşama eşzamansızdır ve hataları işlemelidir — kullanıcı, anahtarlı sistem iletişim kutusunda herhangi bir veri türüne erişimi reddedebilir.

Apple araştırmalarına göre, HealthKit entegrasyonuna sahip uygulamalar %40 daha yüksek kullanıcı katılımı gösterir. Başarının anahtar faktörü, yetkilendirme isteği açıklamasında uygulamanın neden belirli sağlık verilerine ihtiyaç duyduğunu açıklamaktır.

Yetkilendirme İsteği

Yetkilendirme isteği ilk başlatmada bir kez yapılır. Uygulama iki tür kümesi belirtir — okuma ve yazma için. Kullanıcı, her veri türü için anahtarlarla bir sistem iletişim kutusu görür ve gereksiz kategorileri reddederek seçici olarak erişim izni verebilir.

swift
let typesToWrite: Set = [
    HKQuantityType
        .quantityType(
            forIdentifier: .dietaryEnergyConsumed
        )
]
let typesToRead: Set = [
    HKQuantityType
        .quantityType(
            forIdentifier: .stepCount
        )
]

healthStore.requestAuthorization(
    toShare: typesToWrite,
    read: typesToRead
) { success, error in
    if success {
        print("Yetkilendirme alındı")
    }
}

HealthKit Güvenliği

HealthKit, donanım şifrelemesi, uygulama sandboxing'i ve ayrıntılı izinler dahil olmak üzere çok katmanlı bir güvenlik modeli uygular. Tüm sağlık verileri cihazda şifrelenmiş olarak saklanır ve bir kez istenen kullanıcının ayrı onayı olmadan iCloud'a iletilmez.

Önemli bir özellik Intent mekanizmasıdır: uygulamanın verilere sürekli arka plan erişimi yoktur. Her okuma veya yazma isteği işletim sistemi tarafından doğrulanır ve kullanıcı, uygulamayı yeniden yüklemeye gerek kalmadan Ayarlar — Gizlilik — Sağlık üzerinden istediği zaman izni iptal edebilir.

Apple, App Store İnceleme Yönergeleri'nde HealthKit kullanımını sıkı bir şekilde düzenler. Uygulama, açık onay olmadan HealthKit verilerini üçüncü taraflara aktaramaz, bunları reklam veya hedefleme için kullanamaz ve beyan edilen işlevsellik için gerekenden daha uzun süre saklayamaz.

Sınırlamalar ve Kısıtlamalar

HealthKit'in çeşitli sınırlamaları vardır: cihazdaki maksimum veritabanı boyutu 1 GB, tek bir sorgudaki kayıt sayısı sınırı 1000 ve aynı veri türleri arasındaki minimum aralık 1 saniyedir. Çerçeve ayrıca arka plan güncellemelerini sınırlar — günde en fazla 60 HKObserverQuery tetiklemesi.

Bu sınırlamalar performansla dengelenir: 1000 kayıt okumak ortalama 50–100 milisaniye sürer ve tek bir kayıt yazmak 10 milisaniyeden az sürer. Büyük veri hacimleri için, tek tek kayıtları getirmek yerine ön toplama ile HKStatisticsCollectionQuery kullanılması önerilir. HealthKit sorguları eşzamansız olarak işler — uygulama HKHealthStore'dan veri beklerken bloke olmaz.

Sıkça Sorulan Sorular

Hangi cihazlar HealthKit'i destekler?

HealthKit, iPhone, iPad ve iPod touch dahil olmak üzere iOS 8 ve sonraki sürümlere sahip tüm cihazlarda desteklenir. Apple Watch, eşleştirilmiş iPhone aracılığıyla otomatik olarak veri iletir. Üçüncü taraf cihazlar — fitness bileklikleri, tartılar, tansiyon aletleri — ilgili bir uygulama varsa HealthKit API'si aracılığıyla veri yazabilir.

HealthKit'ten veri dışa aktarılabilir mi?

Evet, Sağlık uygulaması, “Sağlık Verilerini Dışa Aktar” işlevi aracılığıyla tüm verilerin XML biçiminde dışa aktarılmasına izin verir. Geliştiriciler, HKSampleQuery aracılığıyla izin verilen tüm türleri programlı olarak okuyabilir ve kendi biçimlerine aktarabilir. Açık kullanıcı onayı olmadan sağlık verileri üçüncü taraf sunuculara aktarılamaz.

HealthKit veri silme işlemini nasıl yönetir?

Kullanıcı, verileri Sağlık uygulaması veya bunları kaydeden kaynak uygulama aracılığıyla silebilir. Silme işleminden sonra veriler geri yüklenemez — HealthKit'in çöp kutusu yoktur. Silme işlemi geri alınamaz, bu nedenle uygulamaların deleteObject'i yürütmeden önce onay istemesi önerilir.

HealthKit, ResearchKit'ten nasıl farklıdır?

HealthKit, kullanıcı sağlık verilerini depolamak ve paylaşmak için tasarlanmıştır; ResearchKit ise tıbbi araştırmalar yapmak için bir çerçevedir. ResearchKit, HealthKit'i veri kaynaklarından biri olarak kullanır ancak araştırma verileri toplamak için bilgilendirilmiş onam, anketler ve aktif görev modülleri ekler.

App Store'da HealthKit için özel izin gerekli mi?

Evet, HealthKit kullanan uygulamaların App Store İnceleme Yönergeleri'nin 5.1.1 — Tıbbi ve Sağlık Verileri bölümüne uyması gerekir. Uygulamada veri kullanımının açık bir şekilde tanımlanması, bir gizlilik politikası, verilerin reklam amaçlı kullanımının yasaklanması ve ağ iletimi sırasında şifreleme gereklidir.

Özet

  • HealthKit, 2014'te tanıtılan, iOS'ta sağlık verilerini yönetmek için Apple'ın standart çerçevesidir.
  • HKHealthStore, tüm işlemler için merkezi arayüzdür: sağlık verilerini kaydetme, okuma ve silme.
  • Platform, 100'den fazla veri türünü destekler — fiziksel aktiviteden laboratuvar testlerine kadar.
  • Veri gizliliği, AES-256 donanım şifrelemesi ve ayrıntılı izinlerle sağlanır.
  • Apple cihazları arasında senkronizasyon, 30 saniyeden az gecikmeyle iCloud üzerinden gerçekleşir.
  • Entegrasyon, Xcode'da entitlement'ların ayarlanmasını ve kullanıcıdan zorunlu yetkilendirme isteğini gerektirir.
  • HealthKit güvenliği, sistem gizlilik ayarları ve App Store politikaları aracılığıyla kontrol edilir.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun