HealthKit freymvorku Apple sağlamlıq ekosisteminin mərkəzi komponentidir. O, iPhone, Apple Watch və üçüncü tərəf cihazlardan məlumatları qorunan yerli anbarda toplayır. Apple Developer Documentation, 2025-yə görə, platforma 100-dən çox məlumat növünü dəstəkləyir — fiziki fəaliyyət və yuxudan tutmuş laboratoriya analizləri və ürək-damar sistemi göstəricilərinə qədər. Vahid anbar tibbi məlumat hər məlumat növü üçün dənəvi giriş nəzarəti ilə tətbiqlər arasında problemsiz sinxronizasiyanı təmin edir.
Başlıca
HealthKit — Apple tərəfindən 2014-cü ildə iOS 8 ilə birlikdə təqdim edilmiş, istifadəçinin sağlamlıq və fiziki fəaliyyət məlumatlarının mərkəzləşdirilmiş idarə edilməsi üçün nəzərdə tutulmuş freymvorkdur. Platforma vahid depo rolunu oynayır, ora tətbiqlər və cihazlar tibbi məlumat yaza və oxuya bilər.
Üçüncü tərəf həllərdən fərqli olaraq, HealthKit birbaşa iOS əməliyyat sisteminə daxil edilmişdir ki, bu da aparat səviyyəsində yüksək performans və təhlükəsizlik təmin edir. Tətbiqlərin bir-birinə birbaşa çıxışı yoxdur — bütün əməliyyatlar mərkəzi HKHealthStore vasitəsilə aparılır.
Apple WWDC 2024 məlumatlarına görə, ABŞ-da iPhone istifadəçilərinin 87%-dən çoxu məhz HealthKit-ə əsaslanan daxili Sağlamlıq tətbiqindən ən azı bir dəfə istifadə edib. Ekosistem fitnes trekerlərdən telemedisina xidmətlərinə qədər minlərlə üçüncü tərəf tətbiqi əhatə edir.
HealthKit arxitekturası hər məlumat mənbəyi üçün təcrid olunmuş konteynerləri olan çoxsəviyyəli anbar prinsipi əsasında qurulmuşdur. Aşağı səviyyədə aparat AES-256 ilə şifrələnmiş SQLite verilənlər bazası yerləşir. Yuxarı səviyyədə HKHealthStore — vahid qarşılıqlı əlaqə interfeysi yerləşir.
Hər yazı meta-məlumatları ehtiva edir: HKSource mənbəyi, HKDevice cihazı, tarix, vaxt və iCloud-dan sinxronizasiya bayrağı. Sistem bir mənbədən təkrarlanan yazıları avtomatik deduplikasiya edir, statistikanın təhrif olunmasının qarşısını alır.
Məlumatlar növlərə görə qruplaşdırılır — HKQuantityType rəqəmsal göstəricilər üçün (nəbz, addımlar, kalorilər) və HKCategoryType kateqoriyalı hadisələr üçün (yuxu, simptomlar, menstruasiya dövri). Bu struktur HKSampleQuery və ya HKStatisticsQuery vasitəsilə parametrlərin istənilən kombinasiyasını çevik şəkildə sorğualmağa imkan verir.
HealthKit 100-dən çox standartlaşdırılmış məlumat növünü dəstəkləyir, kateqoriyalara bölünür: fiziki fəaliyyət, qidalanma, yuxu, ürək-damar sistemi, reproduktiv sağlamlıq, laboratoriya göstəriciləri və həyati əlamətlər. Hər növün HKUnit ölçü vahidi və giriş səviyyəsi var.
Dewelopers həmçinin HKCorrelation vasitəsilə xüsusi korrelyasiyalar yarada bilər — əlaqəli ölçülər qrupu. Məsələn, yemək qeydi vahid obyekt kimi kaloriliyi, zülalları, yağları və karbohidratları əhatə edə bilər. Ardıcıl ölçülər, məsələn qlükoza səviyyəsi üçün HKSeriesSample istifadə olunur.
HealthKit ilə iş HKHealthStore-un təyin edilməsi ilə başlayır — freymvork idxal edilərkən avtomatik yaradılan sinqlton. Store vasitəsilə tətbiq platformanın cihazda mövcud olub-olmadığını yoxlayır, çünki iPad və iPod touch-da dəstək olmaya bilər. Həmçinin qeyd etmək vacibdir ki, HealthKit Mac Catalyst-də mövcud deyil — macOS üçün ayrıca tətbiq tələb olunur.
import HealthKit
let healthStore = HKHealthStore()
let stepType = HKQuantityType
.quantityType(forIdentifier: .stepCount)
let heartRateType = HKQuantityType
.quantityType(forIdentifier: .heartRate)
let typesToRead: Set = [stepType, heartRateType]
HealthKit məlumat mənbələri ilə tətbiqlər arasında vasitəçi kimi çıxış edir, asinxron nəşr-abunə modelindən istifadə edir. Mənbə tətbiq HKHealthStore vasitəsilə məlumat yazır, abunəçi tətbiqlər isə fonda işləyən HKObserverQuery vasitəsilə yeni yazılar haqqında bildirişlər alır.
Freymvork iCloud vasitəsilə fond sinxronizasiyasını dəstəkləyir: istifadəçi daxil olubsa, HealthKit avtomatik olaraq məlumatları bütün Apple cihazlarına real vaxt rejimində yayır. Şəbəkə olmadıqda dəyişikliklər lokally buferləşdirilir və əlaqə bərpa edilərkən məlumat itkisi olmadan sinxronlaşdırılır.
Apple məlumatlarına görə, iPhone və Apple Watch arasında sinxronizasiya gecikməsi aktivlik məlumatları üçün 30 saniyədən azdır. Digər növlər üçün — yuxu, qidalanma, laboratoriya göstəriciləri — sinxronizasiya batareyaya qənaət etmək üçün 15 dəqiqəyə qədər interval ilə cədvəl üzrə baş verir.
HKHealthStore — bütün əməliyyatların yerinə yetirildiyi mərkəzi sinqlton: saveObject vasitəsilə yazma, execute vasitəsilə oxuma və deleteObject vasitəsilə silmə. Hər əməliyyat asinxrondur və nəticəni closure vasitəsilə qaytarır ki, bu da səhvlərin düzgün idarə edilməsini tələb edir.
Sorğular bir neçə növə bölünür: HKSampleQuery meyarlara görə yazıları seçmək üçün, HKStatisticsQuery cəmi, ortalama, minimum, maksimum kimi aqreqasiya edilmiş məlumatlar üçün və HKObserverQuery real vaxtda dəyişiklikləri izləmək üçün. Dövri fond yeniləmələri üçün HKHeartbeatSeriesQuery istifadə olunur.
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)
HealthKit inteqrasiyası Xcode-da HealthKit capability birşdirilməsi və layihəyə entitlement əlavə edilməsi ilə başlayır. Bundan sonra tətbiq requestAuthorization çağırışı vasitəsilə konkret məlumat növlərinə giriş icazəsi tələb edir. Vacib: HealthKit simulatorunda mövcud deyil və iOS olan fiziki cihaz tələb edir.
inteqrasiya prosesi üç mərhələdən ibarətdir: məlumat növlərinin müyyən edilməsi, avtorizasiya tələbi və oxuma və yazma əməliyyatlarının yerinə yetirilməsi. Hər mərhələ asinxrondur və səhvləri idarə etməlidir — istifadəçi açarlarla sistem dialoqunda istənilən məlumat növünə giriş tələbini rədd edə bilər.
Apple tədqiqatlarına görə, HealthKit inteqrasiyası olan tətbiqlər istifadəçi cəlbolunmasında 40% daha yüksək səviyyə göstərir. Uğurun açar amili avtorizasiya tələbinin təsvirində tətbiqin konkret sağlamlıq məlumatlarına niyə ehtiyacı olduğunu izah etməkdir.
Avtorizasiya tələbi ilk işə salınmada bir dəfə yerinə yetirilir. Tətbiq iki dəst növü göstərir — oxuma və yazma üçün. İstifadəçi hər məlumat növü üçün açarları olan sistem dialoqunu görür və lazımsız kateqoriyaları qadağan edərək girişi seçmə şəkildə verə bilər.
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("Səlahiyyət alındı")
}
}
HealthKit aparat şifrələmə, tətbiq sandbox və dənəvi icazələr daxil olmaqla çoxsəviyyəli təhlükəsizlik modelini həyata keçirir. Bütün sağlamlıq məlumatları cihazda şifrələnmiş formada saxlanılır və bir dəfə tələb edilən ayrıca istifadəçi razılığı olmadan iCloud-a ötürülmür.
Əsas xüsusiyyət — Intent mexanizmi: tətbiqin məlumatlara daimi fon girişi yoxdur. Hər oxuma və ya yazma tələbi əməliyyat sistemi tərəfindən yoxlanılır və istifadəçi istənılən vaxt Tənzimləmələr — Məxfilik — Sağlamlıq vasitəsilə tətbiqi yenidən quraşdırmadan icazəni ləğv edə bilər.
Apple HealthKit istifadəsini App Store Review Guidelines-də ciddi şəkildə tənzimləyir. Tətbiq açıq razılıq olmadan HealthKit məlumatlarını üçüncü tərəflərə ötürə, reklam və ya hədəfləmə üçün istifadə edə və ya bəyan edilmiş funksionallıq üçün zəruri olandan daha uzun saxlaya bilməz.
HealthKit bir sıra məhdudiyyətlərə malikdir: cihazda maksimal verilənlər bazası ölçüsü — 1 QB, bir sorğuda yazıların sayı limiti — 1000, eyni məlumat növləri arasında minimal interval — 1 saniyə. Freymvork həmçinin fon yeniləmələrini məhdudlaşdırır — günlük 60-dan çox HKObserverQuery işləməsi.
Bu məhdudiyyətlər performansla kompensasiya olunur: 1000 yazının oxunması orta hesabla 50–100 millisaniyə ərzində baş verir, bir yazının yazılması isə 10 millisaniyədən az çəkir. Böyük həcmli məlumatlar üçün ayrı-ayrı yazıları seçmək əvəzinə öncədən aqreqasiya ilə HKStatisticsCollectionQuery istifadə etmək tövsiyə olunur. HealthKit sorğuları asinxron emal edir — tətbiq HKHealthStore-dan məlumat gözləyərkən bloklanmır.
Tez-tez verilən suallar
HealthKit iOS 8 və daha yeni olan bütün cihazlarda, o cümlədən iPhone, iPad və iPod touch-da dəstəklənir. Apple Watch qoşulmuş iPhone vasitəsilə avtomatik məlumat ötürür. Üçüncü tərəf cihazlar — fitnes bilərziklər, tərəzilər, təzyiq monitorları — müvafiq tətbiq olduqda HealthKit API vasitəsilə məlumat yaza bilər.
Bəli, Sağlamlıq tətbiqi „Sağlamlıq məlumatlarının ixracı” funksiyası vasitəsilə bütün məlumatları XML formatında ixrac etməyə imkan verir. Dewelopers HKSampleQuery vasitəsilə istənilən icazə verilmiş növü proqramlı oxuya və öz formatına ixrac edə bilər. Sağlamlıq məlumatları istifadəçinin açıq razılığı olmadan üçüncü tərəf serverlərə ötürülə bilməz.
İstifadəçi məlumatları Sağlamlıq tətbiqi və ya onları yazan mənbə tətbiq vasitəsilə silə bilər. Silindikdən sonra məlumatlar bərpa edilmir — HealthKit-in zibili yoxdur. Silmə əməliyyatı geri döndürülməzdir, ona görə tətbiqlərə deleteObject yerinə yetirməzdən əvvəl təsdiq tələb etmək tövsiyə olunur.
HealthKit istifadəçinin sağlamlıq məlumatlarının saxlanması və mübadiləsi üçün nəzərdə tutulub, ResearchKit isə tibbi tədqiqatların aparılması üçün freymvorkdur. ResearchKit HealthKit-i məlumat mənbələrindən biri kimi istifadə edir, lakin məlumatlı razılıq, sorğu vərəqləri və tədqiqat məlumatlarının toplanması üçün aktiv tapşırıq modulları əlavə edir.
Bəli, HealthKit istifadə edən tətbiqlər App Store Review Guidelines, bölmə 5.1.1 — Medical and Health Data tələblərinə cavab verməlidir. Tətbiqdə məlumatların istifadəsinin aşkar təsviri, məxfilik siyasəti, məlumatların reklam məqsədli istifadəsinin qadağanı və şəbəkə üzrə ötürülmə zamanı şifrələmə tələb olunur.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun