A HealthKit keretrendszer az Apple egészségügyi ökoszisztémájának központi komponense, amely az iPhone, Apple Watch és harmadik fél eszközeinek adatait egy védett helyi tárban gyűjti össze. A Apple Developer Documentation, 2025 szerint a platform több mint 100 adattípust támogat — a fizikai aktivitástól és alvástól a laborvizsgálatokig és a szív-ér rendszer mutatóiig. Egységes tár az orvosi információk számára závartalan szinkronizációt biztosít az alkalmazások között, az egyes adattípusokhoz való részletes hozzáférés-szabályozással.
Főbb pontok
A HealthKit egy Apple keretrendszer, amelyet 2014-ben mutattak be az iOS 8-cal együtt, és a felhasználó egészségügyi és fizikai aktivitási adatainak központosított kezelésére szolgál. A platform egyetlen tárolóként működik, ahová az alkalmazások és eszközök orvosi információkat írhatnak és ahonnan olvashatnak.
Ellentétben a harmadik fél megoldásaival, a HealthKit közvetlenül az iOS operációs rendszerbe van ágyazva, ami magas teljesítményt és biztonságot biztosít hardver szinten. Az alkalmazásoknak nincs közvetlen hozzáférésük egymáshoz — minden művelet a központi HKHealthStore-on keresztül történik.
Az Apple WWDC 2024 szerint az USA-ban az iPhone felhasználók több mint 87%-a legalább egyszer használta a beépített Egészség alkalmazást, amely pontosan a HealthKit-en alapul. Az ökoszisztéma többezer harmadik fél alkalmazást foglal magába — a fitneszkövetőktől a telemedicina szolgáltatásig.
A HealthKit architektúrája a többszintű tároló elvére épül, elkülönített konténerekkel minden adatforrás számára. Az alsó szinten egy SQLite adatbázis található, hardveres AES-256 titkosítással. A felső szinten a HKHealthStore található — az egységes interakciós interfész.
Minden rekord metaadatokat tartalmaz: HKSource forrás, HKDevice eszköz, dátum, idő és egy szinkronizációs jelző az iCloud-ból. A rendszer automatikusan deduplikálja az azonos forrásból származó ismétlődő bejegyzéseket, megakadályozva a statisztikák torzulását.
Az adatok típus szerint vannak csoportosítva — HKQuantityType a numerikus mutatókhoz (pulzus, lépések, kalóriák) és HKCategoryType a kategorikus eseményekhez (alvás, tünetek, menstruációs ciklus). Ez a struktúra lehetővé teszi a paraméterek bármilyen kombinációjának rugalmas lekérdezését HKSampleQuery vagy HKStatisticsQuery segítségével.
A HealthKit több mint 100 szabványosított adattípust támogat, kategóriákra bontva: fizikai aktivitás, táplálkozás, alvás, szív-ér rendszer, reproduktív egészség, laboratóriumi paraméterek és életjelek. Minden típusnak van HKUnit mértékegysége és hozzáférési szintje.
A fejlesztő egyéni korrelációkat is létrehozhat HKCorrelation segítségével — összefüggő mérések csoportját. Például egy étkezési bejegyzés tartalmazhatja a kalóriákat, fehérjéket, zsírokat és szénhidrátokat egyetlen objektumként. A szekvenciális mérésekhez, mint a vércukorszint, a HKSeriesSample használható.
A HealthKit használata a HKHealthStore meghatározásával kezdődik — egy singleton, amely automatikusan létrejődik a keretrendszer importálásakor. A store-on keresztül az alkalmazás ellenőrzi, hogy a platform elérhető-e az eszközön, mivel iPad és iPod touch esetén a támogatás hiányozhat. Fontos megjegyezni, hogy a HealthKit nem elérhető Mac Catalyst-en — a macOS-hez külön implementáció szükséges.
import HealthKit
let healthStore = HKHealthStore()
let stepType = HKQuantityType
.quantityType(forIdentifier: .stepCount)
let heartRateType = HKQuantityType
.quantityType(forIdentifier: .heartRate)
let typesToRead: Set = [stepType, heartRateType]
A HealthKit közvetítőként működik az adatforrások és alkalmazások között, aszinkron publikáló-feliratkozó modellt használva. A forrás alkalmazás a HKHealthStore-on keresztül ír adatokat, a feliratkozó alkalmazások pedig értesítéseket kapnak az új bejegyzésekről a HKObserverQuery-n keresztül, amely a háttérben fut.
A keretrendszer háttér szinkronizációt támogat iCloud-on keresztül: ha a felhasználó be van jelentkezve, a HealthKit automatikusan elosztja az adatokat az összes Apple eszközre valós időben. Hálózat hiányában a változtatások helyileg pufferelődnek, és a kapcsolat helyreállításakor szinkronizálódnak adatveszteség nélkül.
Az Apple szerint a szinkronizáció késleltetése az iPhone és Apple Watch között kevesebb mint 30 másodperc az aktivitási adatoknál. Más típusoknál — alvás, táplálkozás, laboratóriumi paraméterek — a szinkronizáció ütemezetten történik, legfeljebb 15 perces időközökkel az akkumulátor kímélése érdekében.
HKHealthStore — a központi singleton, amelyen keresztül minden műveletet végrehajtanak: mentés a saveObject-en keresztül, olvasás az execute-on keresztül és törlés a deleteObject-en keresztül. Minden művelet aszinkron és az eredményt closure-on keresztül adja vissza, ami megfelelő hibakezelést igényel.
A lekérdezések több típusra oszlanak: HKSampleQuery a bejegyzések kritériumok szerinti kiválasztásához, HKStatisticsQuery az összesített adatokhoz — összeg, átlag, minimum, maximum — és HKObserverQuery a változások valós idejű követéséhez. Az időszakos háttérfrissítésekhez a HKHeartbeatSeriesQuery használható.
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)
A HealthKit integráció a HealthKit capability bekapcsolásával kezdődik az Xcode-ban és az entitlement hozzáadásával a projekthez. Ezt követően az alkalmazás hozzáférési engedélyeket kér meghatározott adattípusokhoz a requestAuthorization híváson keresztül. Fontos: a HealthKit nem elérhető szimulátoron, és fizikai iOS-eszközt igényel.
Az integrációs folyamat három szakaszból áll: az adattípusok meghatározása, az engedélyezés kérése és az olvasási és írási műveletek végrehajtása. Minden szakasz aszinkron és kezelnie kell a hibákat — a felhasználó elutasíthatja a hozzáférési kérelmet bármely adattüushoz a kapcsolókat tartalmazó rendszerpárbeszédablakban.
Az Apple kutatásai szerint a HealthKit integrációval rendelkező alkalmazások 40%-kal magasabb felhasználói elköteleződést mutatnak. A siker kulcstényezője annak magyarázata, hogy az alkalmazásnak miért van szüksége konkrét egészségügyi adatokra az engedélyezési kérelem leírásában.
Az engedélyezési kérelem egyszer történik az első indításkor. Az alkalmazás két típushalmazt határoz meg — olvasáshoz és íráshoz. A felhasználó egy rendszerpárbeszédablakot lát kapcsolókkal minden adattípushoz, és szelektíven adhat hozzáférést, letiltva a szükségtelen kategóriákat.
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("Engedélyezés megtörtént")
}
}
A HealthKit többszintű biztonsági modellt valósít meg, beleértve a hardveres titkosítást, az alkalmazás homokozót és a részletes engedélyeket. Minden egészségügyi adat titkosítva tárolódik az eszközön, és nem kerül továbbításra az iCloud-ba a felhasználó külön hozzájárulása nélkül, amelyet egyszer kérnek.
A fő jellemző — az Intent mechanizmus: az alkalmazásnak nincs állandó háttér hozzáférése az adatokhoz. Minden olvasási vagy írási kérelmet az operációs rendszer ellenőriz, és a felhasználó bármikor visszavonhatja az engedélyt a Beállítások — Adatvédelem — Egészség menün keresztül anélkül, hogy újjá kellene telepítenie az alkalmazást.
Az Apple szigorúan szabályozza a HealthKit használatát az App Store Review Guidelines-ban. Az alkalmazás nem továbbíthatja a HealthKit adatokat harmadik félnek kifejezett hozzájárulás nélkül, nem használhatja azokat reklámhoz vagy célzáshoz, és nem tárolhatja azokat tovább, mint amennyi a deklarált funkcionalitáshoz szükséges.
A HealthKit számos korlátozással rendelkezik: maximális adatbázisméret az eszközön — 1 GB, a bejegyzések számának korlátja egy lekérdezésben — 1000, minimális időköz az azonos adattípusok között — 1 másodperc. A keretrendszer korlátozza a háttérfrissítéseket is — legfeljebb napi 60 HKObserverQuery indítás.
Ezek a korlátozások a teljesítménnyel kompenzálódnak: 1000 bejegyzés olvasása átlagosan 50–100 ezredmásodpercig tart, egy bejegyzés írása pedig kevesebb mint 10 ezredmásodpercig. Nagy adatmennyiségek esetén ajánlott a HKStatisticsCollectionQuery használata előzetes összesítéssel az egyedi bejegyzések kiválasztása helyett. A HealthKit aszinkron módon dolgozza fel a lekérdezéseket — az alkalmazás nem blokkolódik, amíg a HKHealthStore-tól vár adatokat.
Gyakran ismételt kérdések
A HealthKit az iOS 8 és újabb rendszerrel rendelkező összes eszközön támogatott, beleértve az iPhone-t, iPadet és iPod touch-t. Az Apple Watch automatikusan továbbítja az adatokat a párosított iPhone-on keresztül. A harmadik fél eszközök — fitnesz karkötők, mérlegek, vérnyomásmérők — írhatnak adatokat a HealthKit API-n keresztül, ha rendelkeznek megfelelő alkalmazással.
Igen, az Egészség alkalmazás lehetővé teszi az összes adat exportálását XML formátumban az “Egészségügyi adatok exportálása” funkción keresztül. A fejlesztők programozottan olvashatnak bármilyen engedélyezett típust a HKSampleQuery segítségével, és exportálhatják azokat saját formátumukba. Az egészségügyi adatok nem küldhetők el harmadik fél szervereire a felhasználó kifejezett hozzájárulása nélkül.
A felhasználó törölheti az adatokat az Egészség alkalmazáson vagy az azokat rögzítő forrás alkalmazáson keresztül. Törlés után az adatok nem állíthatók vissza — a HealthKit-nek nincs kukája. A törlési művelet visszafordíthatatlan, ezért az alkalmazásoknak ajánlott megerősítést kérniük a deleteObject végrehajtása előtt.
A HealthKit a felhasználó egészségügyi adatainak tárolására és cseréjére szolgál, míg a ResearchKit egy keretrendszer orvosi kutatások végzésére. A ResearchKit a HealthKit-et az egyik adatforrásként használja, de hozzáad tájékozott beleegyezési, kérdőíves és aktív feladat modulokat a kutatási adatok gyűjtéséhez.
Igen, a HealthKit-et használó alkalmazásoknak meg kell felelniük az App Store Review Guidelines 5.1.1 — Medical and Health Data szakaszának. Szükséges az adatok alkalmazásbeli használatának egyértelmű leírása, adatvédelmi irányelvek, az adatok reklámcélú felhasználásának tilalma és titkosítás a hálózati továbbítás során.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is