Het HealthKit-framework is de centrale component van het Apple-gezondheidsecosysteem, dat gegevens van iPhone, Apple Watch en apparaten van derden verzamelt in een beschermde lokale opslag. Volgens Apple Developer Documentation, 2025 ondersteunt het platform meer dan 100 gegevenstypen — van fysieke activiteit en slaap tot laboratoriumanalyses en cardiovasculaire indicatoren. Eén enkele opslag van medische informatie zorgt voor naadloze synchronisatie tussen applicaties met granulaire toegangscontrole voor elk gegevenstype.
Belangrijkste
HealthKit is een Apple-framework dat in 2014 samen met iOS 8 werd geïntroduceerd, bedoeld voor gecentraliseerd beheer van gezondheids- en fitnessgegevens van de gebruiker. Het platform fungeert als een centrale opslagplaats waar applicaties en apparaten medische informatie kunnen schrijven en lezen.
In tegenstelling tot oplossingen van derden, is HealthKit direct geïntegreerd in het iOS-besturingssysteem, wat hoge prestaties en beveiliging op hardwareniveau garandeert. Applicaties hebben geen directe toegang tot elkaar — alle bewerkingen verlopen via de centrale HKHealthStore.
Volgens Apple WWDC 2024 heeft meer dan 87% van de iPhone-gebruikers in de VS minstens één keer de ingebouwde Gezondheid-app gebruikt, die juist op HealthKit is gebaseerd. Het ecosysteem omvat duizenden apps van derden — van fitnesstrackers tot telegeneeskundediensten.
De architectuur van HealthKit is gebaseerd op het principe van een meerlaagse opslag met geïsoleerde containers voor elke gegevensbron. Op het onderste niveau bevindt zich een SQLite-database, versleuteld met hardware AES-256. Op het bovenste niveau bevindt zich HKHealthStore — de uniforme interface voor interactie.
Elk record bevat metadata: bron HKSource, apparaat HKDevice, datum, tijd en een synchronisatie-vlag uit iCloud. Het systeem verwijdert automatisch dubbele records van dezelfde bron, waardoor statistische vervorming wordt voorkomen.
Gegevens worden gegroepeerd op type — HKQuantityType voor numerieke indicatoren (hartslag, stappen, calorieën) en HKCategoryType voor categorische gebeurtenissen (slaap, symptomen, menstruele cyclus). Deze structuur maakt flexibel opvragen van elke combinatie van parameters mogelijk via HKSampleQuery of HKStatisticsQuery.
HealthKit ondersteunt meer dan 100 gestandaardiseerde gegevenstypen, verdeeld in categorieën: fysieke activiteit, voeding, slaap, cardiovasculair systeem, reproductieve gezondheid, laboratoriumparameters en vitale functies. Elk type heeft een meeteenheid HKUnit en een toegangsniveau.
Ontwikkelaars kunnen ook aangepaste correlaties maken via HKCorrelation — een groep gerelateerde metingen. Een maaltijdrecord kan bijvoorbeeld calorieën, eiwitten, vetten en koolhydraten als één object bevatten. Voor sequentiële metingen, zoals glucoseniveau, wordt HKSeriesSample gebruikt.
Werken met HealthKit begint met het definiëren van HKHealthStore — een singleton die automatisch wordt aangemaakt bij het importeren van het framework. Via de store controleert de app of het platform beschikbaar is op het apparaat, omdat ondersteuning op iPad en iPod touch kan ontbreken. Het is ook belangrijk op te merken dat HealthKit niet beschikbaar is op Mac Catalyst — voor macOS is een aparte implementatie vereist.
import HealthKit
let healthStore = HKHealthStore()
let stepType = HKQuantityType
.quantityType(forIdentifier: .stepCount)
let heartRateType = HKQuantityType
.quantityType(forIdentifier: .heartRate)
let typesToRead: Set = [stepType, heartRateType]
HealthKit fungeert als tussenpersoon tussen gegevensbronnen en applicaties, met behulp van een asynchroon publicatie-abonnementsmodel. De bron-app schrijft gegevens via HKHealthStore, en geabonneerde apps ontvangen meldingen over nieuwe records via HKObserverQuery, dat op de achtergrond wordt uitgevoerd.
Het framework ondersteunt synchronisatie op de achtergrond via iCloud: als de gebruiker is ingelogd, verspreidt HealthKit automatisch gegevens naar alle Apple-apparaten in realtime. Bij afwezigheid van een netwerk worden wijzigingen lokaal gebufferd en gesynchroniseerd wanneer de verbinding wordt hersteld, zonder gegevensverlies.
Volgens Apple is de synchronisatievertraging tussen iPhone en Apple Watch minder dan 30 seconden voor activiteitsgegevens. Voor andere typen — slaap, voeding, laboratoriumparameters — vindt synchronisatie plaats volgens een schema met een interval van maximaal 15 minuten om de batterij te sparen.
HKHealthStore — de centrale singleton waarmee alle bewerkingen worden uitgevoerd: opslaan via saveObject, lezen via execute en verwijderen via deleteObject. Elke bewerking is asynchroon en retourneert het resultaat via een closure, wat een correcte foutafhandeling vereist.
Query’s zijn onderverdeeld in verschillende typen: HKSampleQuery voor het selecteren van records op criteria, HKStatisticsQuery voor geaggregeerde gegevens — som, gemiddelde, minimum, maximum — en HKObserverQuery voor het volgen van wijzigingen in realtime. Voor periodieke achtergrondupdates wordt HKHeartbeatSeriesQuery gebruikt.
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-integratie begint met het inschakelen van de HealthKit-capability in Xcode en het toevoegen van een entitlement aan het project. Daarna vraagt de app toegangsrechten aan voor specifieke gegevenstypen via requestAuthorization. Belangrijk: HealthKit is niet beschikbaar op de simulator en vereist een fysiek apparaat met iOS.
Het integratieproces omvat drie fasen: het definiëren van gegevenstypen, het aanvragen van autorisatie en het uitvoeren van lees- en schrijfbewerkingen. Elke fase is asynchroon en moet fouten afhandelen — de gebruiker kan het toegangsverzoek voor elk gegevenstype weigeren in het systeemdialoogvenster met schakelaars.
Volgens Apple-onderzoek vertonen apps met HealthKit-integratie een 40% hogere gebruikersbetrokkenheid. De sleutelfactor voor succes is uitleggen waarom de app specifieke gezondheidsgegevens nodig heeft in de beschrijving van het autorisatieverzoek.
Het autorisatieverzoek wordt eenmalig uitgevoerd bij de eerste start. De app specificeert twee sets typen — voor lezen en voor schrijven. De gebruiker ziet een systeemdialoogvenster met schakelaars voor elk gegevenstype en kan selectief toegang verlenen door onnodige categorieën te blokkeren.
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("Autorisatie verkregen")
}
}
HealthKit implementeert een meerlaags beveiligingsmodel, inclusief hardwarematige versleuteling, applicatiesandbox en granulaire machtigingen. Alle gezondheidsgegevens worden versleuteld op het apparaat opgeslagen en worden niet naar iCloud verzonden zonder afzonderlijke toestemming van de gebruiker, die eenmalig wordt gevraagd.
Het belangrijkste kenmerk — het Intent-mechanisme: de app heeft geen constante achtergrondtoegang tot gegevens. Elk lees- of schrijfverzoek wordt gecontroleerd door het besturingssysteem en de gebruiker kan op elk moment de toestemming intrekken via Instellingen — Privacy — Gezondheid zonder de app opnieuw te hoeven installeren.
Apple reguleert het gebruik van HealthKit strikt in de App Store Review Guidelines. De app mag HealthKit-gegevens niet zonder expliciete toestemming aan derden doorgeven, ze niet gebruiken voor reclame of targeting en ze niet langer bewaren dan nodig is voor de aangegeven functionaliteit.
HealthKit heeft een aantal beperkingen: maximale databasegrootte op het apparaat — 1 GB, limiet op het aantal records in één query — 1000, minimaal interval tussen identieke gegevenstypen — 1 seconde. Het framework beperkt ook achtergrondupdates — niet meer dan 60 HKObserverQuery-activaties per dag.
Deze beperkingen worden gecompenseerd door prestaties: het lezen van 1000 records duurt gemiddeld 50–100 milliseconden en het schrijven van één record duurt minder dan 10 milliseconden. Voor grote hoeveelheden gegevens wordt aanbevolen HKStatisticsCollectionQuery met voorafgaande aggregatie te gebruiken in plaats van individuele records te selecteren. HealthKit verwerkt query’s asynchroon — de app wordt niet geblokkeerd tijdens het wachten op gegevens van HKHealthStore.
Veelgestelde vragen
HealthKit wordt ondersteund op alle apparaten met iOS 8 en nieuwer, inclusief iPhone, iPad en iPod touch. Apple Watch stuurt automatisch gegevens via de gekoppelde iPhone. Apparaten van derden — fitnessarmbanden, weegschalen, bloeddrukmeters — kunnen gegevens schrijven via de HealthKit API als ze een bijbehorende app hebben.
Ja, de Gezondheid-app biedt de mogelijkheid om alle gegevens in XML-formaat te exporteren via de functie “Exporteer gezondheidsgegevens”. Ontwikkelaars kunnen via HKSampleQuery programmatisch alle toegestane typen uitlezen en naar hun eigen formaat exporteren. Gezondheidsgegevens mogen niet zonder expliciete toestemming van de gebruiker naar servers van derden worden verzonden.
De gebruiker kan gegevens verwijderen via de Gezondheid-app of via de bron-app die ze heeft geschreven. Na verwijdering worden gegevens niet hersteld — HealthKit heeft geen prullenbak. De verwijderingsbewerking is onomkeerbaar, daarom wordt apps aangeraden om bevestiging te vragen voordat deleteObject wordt uitgevoerd.
HealthKit is bedoeld voor het opslaan en uitwisselen van gezondheidsgegevens van de gebruiker, terwijl ResearchKit een framework is voor het uitvoeren van medisch onderzoek. ResearchKit gebruikt HealthKit als een van de gegevensbronnen, maar voegt modules toe voor geïnformeerde toestemming, vragenlijsten en actieve taken voor het verzamelen van onderzoeksgegevens.
Ja, apps die HealthKit gebruiken, moeten voldoen aan de App Store Review Guidelines, sectie 5.1.1 — Medical and Health Data. Vereist zijn een duidelijke beschrijving van het gegevensgebruik in de app, een privacybeleid, een verbod op reclamegebruik van gegevens en versleuteling bij verzending via het netwerk.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook