HealthKit: vad är det, arbetsprinciper och integration

Författare: IT Sectr Publicerad: 2026-03-25 Lästid: 8 min

HealthKit-ramverket är den centrala komponenten i Apples hälsoekosystem, som samlar data från iPhone, Apple Watch och tredjepartsenheter i en skyddad lokal lagring. Enligt Apple Developer Documentation, 2025 stödjer plattformen över 100 datatyper — från fysisk aktivitet och sömn till laboratorieanalyser och indikatorer för det kardiovaskulära systemet. Enhetlig lagring av medicinsk information säkerställer sömlös synkronisering mellan appar med granulär åtkomstkontroll för varje datatyp.

Huvudpunkter

  • HealthKit — Apple-ramverk för insamling, lagring och utbyte av hälsodata mellan iOS-appar.
  • HKHealthStore — det centrala objektet genom vilket appar interagerar med hälsodata.
  • Datatyper är uppdelade i kvantitativa HKQuantityType och kategoriska HKCategoryType.
  • Sekretess — varje app begär separat tillstånd för läsning och skrivning för varje datatyp.
  • Apple Watch överför automatiskt data om aktivitet, puls och träning till HealthKit.

Vad är HealthKit?

HealthKit är ett Apple-ramverk som introducerades 2014 tillsammans med iOS 8, avsett för centraliserad hantering av användarens hälso- och träningsdata. Plattformen fungerar som ett centralt lager där appar och enheter kan skriva och läsa medicinsk information.

Till skillnad från tredjepartslösningar är HealthKit direkt inbäddat i iOS-operativsystemet, vilket säkerställer hög prestanda och säkerhet på hårdvarunivå. Appar har inte direkt åtkomst till varandra — alla operationer går via den centrala HKHealthStore.

Enligt Apple WWDC 2024 har över 87% av iPhone-användarna i USA minst en gång använt den inbyggda Hälso-appen, som är baserad just på HealthKit. Ekosystemet omfattar tusentals tredjepartsappar — från fitnesstrackers till teletjänster.

HealthKit-arkitektur

HealthKit-arkitekturen är byggd på principen om flernivålagring med isolerade behållare för varje datakälla. På den nedre nivån finns en SQLite-databas, krypterad med hårdvarubaserad AES-256. På den övre nivån finns HKHealthStore — det enhetliga gränssnittet för interaktion.

Varje post innehåller metadata: källa HKSource, enhet HKDevice, datum, tid och en synkroniseringsflagga från iCloud. Systemet tar automatiskt bort dubbletter från samma källa, vilket förhindrar snedvridning av statistik.

Data grupperas efter typ — HKQuantityType för numeriska indikatorer (puls, steg, kalorier) och HKCategoryType för kategoriska händelser (sömn, symtom, menstruationscykel). Denna struktur möjliggör flexibel frågning av alla kombinationer av parametrar via HKSampleQuery eller HKStatisticsQuery.

Datatyper i HealthKit

HealthKit stödjer över 100 standardiserade datatyper indelade i kategorier: fysisk aktivitet, näring, sömn, kardiovaskulära systemet, reproduktiv hälsa, laboratorieparametrar och vitala tecken. Varje typ har en mättenhet HKUnit och en åtkomstnivå.

Utvecklaren kan också skapa anpassade korrelationer via HKCorrelation — en grupp relaterade mätningar. Till exempel kan en måltidspost innehålla kalorier, protein, fett och kolhydrater som ett enda objekt. För sekventiella mätningar, som glukosnivå, används HKSeriesSample.

Arbete med HealthKit börjar med att definiera HKHealthStore — en singleton som skapas automatiskt när ramverket importeras. Via store kontrollerar appen om plattformen är tillgänglig på enheten, eftersom stöd på iPad och iPod touch kan saknas. Det är också viktigt att notera att HealthKit inte är tillgängligt på Mac Catalyst — för macOS krävs en separat implementering.

swift
import HealthKit

let healthStore = HKHealthStore()

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

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

let typesToRead: Set = [stepType, heartRateType]

Hur HealthKit fungerar

HealthKit fungerar som en medlare mellan datakällor och appar, med hjälp av en asynkron publicerings-prenumerationsmodell. Källappen skriver data via HKHealthStore och prenumererande appar får meddelanden om nya poster via HKObserverQuery som körs i bakgrunden.

Ramverket stödjer bakgrundssynkronisering via iCloud: om användaren är inloggad distribuerar HealthKit automatiskt data till alla Apple-enheter i realtid. När nätverk saknas buffras ändringar lokalt och synkroniseras när anslutningen återställs utan dataförlust.

Enligt Apple är synkroniseringsfördröjningen mellan iPhone och Apple Watch mindre än 30 sekunder för aktivitetsdata. För andra typer — sömn, näring, laboratorieparametrar — sker synkronisering enligt schema med intervall på upp till 15 minuter för att spara batteri.

HKHealthStore och dataoperationer

HKHealthStore — den centrala singletonen genom vilken alla operationer utförs: spara via saveObject, läsa via execute och ta bort via deleteObject. Varje operation är asynkron och returnerar resultatet via en closure, vilket kräver korrekt felhantering.

Frågor är indelade i flera typer: HKSampleQuery för att välja poster efter kriterier, HKStatisticsQuery för aggregerad data — summa, medelvärde, minimum, maximum — och HKObserverQuery för att spåra förändringar i realtid. För periodiska bakgrundsuppdateringar används HKHeartbeatSeriesQuery.

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)

Integrera HealthKit i en app

HealthKit-integration börjar med att aktivera HealthKit-capability i Xcode och lägga till entitlement i projektet. Därefter begär appen åtkomstbehörigheter till specifika datatyper via anropet requestAuthorization. Viktigt: HealthKit är inte tillgängligt på simulatorn och kräver en fysisk enhet med iOS.

Integrationsprocessen omfattar tre steg: definiera datatyper, begära auktorisering och utföra läs- och skrivoperationer. Varje steg är asynkront och måste hantera fel — användaren kan avvisa åtkomstbegäran till vilken datatyp som helst i systemdialogrutan med välar.

Enligt Apples forskning visar appar med HealthKit-integration 40% högre användarengagemang. Den viktigaste framgångsfaktorn är att förklara varför appen behöver specifika hälsodata i beskrivningen av auktoriseringsbegäran.

Auktoriseringsbegäran

Auktoriseringsbegäran görs en gång vid första starten. Appen anger två uppsättningar typer — för läsning och skrivning. Användaren ser en systemdialogruta med växlar för varje datatyp och kan ge åtkomst selektivt genom att blockera onödiga kategorier.

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("Auktorisering erhållen")
    }
}

HealthKit-säkerhet

HealthKit implementerar en flernivåsäkerhetsmodell, inklusive hårdvarukryptering, app-sandlåda och granulära behörigheter. All hälsodata lagras krypterad på enheten och överförs inte till iCloud utan separat användarsamtycke, som begärs en gång.

Nyckelfunktionen — Intent-mekanismen: appen har inte konstant bakgrundsåtkomst till data. Varje läs- eller skrivbegäran kontrolleras av operativsystemet och användaren kan när som helst återkalla behörigheten via Inställningar — Sekretess — Hälsa utan att behöva ominstallera appen.

Apple reglerar strikt användningen av HealthKit i App Store Review Guidelines. Appen får inte överföra HealthKit-data till tredje part utan uttryckligt samtycke, inte använda dem för reklam eller riktning och inte lagra dem längre än nödvändigt för den deklarerade funktionaliteten.

Begränsningar

HealthKit har ett antal begränsningar: maximal databasstorlek på enheten — 1 GB, gräns för antal poster i en fråga — 1000, minsta intervall mellan identiska datatyper — 1 sekund. Ramverket begränsar även bakgrundsuppdateringar — högst 60 HKObserverQuery-utlösningar per dag.

Dessa begränsningar kompenseras av prestanda: läsning av 1000 poster tar i genomsnitt 50–100 millisekunder och skrivning av en post tar mindre än 10 millisekunder. För stora datamängder rekommenderas att använda HKStatisticsCollectionQuery med föregående aggregering istället för att välja enskilda poster. HealthKit behandlar frågor asynkront — appen blockeras inte medan den väntar på data från HKHealthStore.

Vanliga frågor

Vilka enheter stödjer HealthKit?

HealthKit stöds på alla enheter med iOS 8 och nyare, inklusive iPhone, iPad och iPod touch. Apple Watch överför automatiskt data via den parade iPhone. Tredjepartsenheter — fitnessarmband, vågar, blodtrycksmätare — kan skriva data via HealthKit API om de har en motsvarande app.

Kan data exporteras från HealthKit?

Ja, Hälso-appen tillåter export av all data i XML-format via funktionen “Exportera hälsodata”. Utvecklare kan programmatiskt läsa alla tillåtna typer via HKSampleQuery och exportera till sitt eget format. Hälsodata får inte överföras till tredjepartsservrar utan användarens uttryckliga samtycke.

Hur hanterar HealthKit borttagning av data?

Användaren kan ta bort data via Hälso-appen eller via källappen som registrerade dem. Efter borttagning kan data inte återställas — HealthKit har ingen papperskorg. Borttagningsoperationen är oåterkallelig, därför rekommenderas appar att begära bekräftelse innan deleteObject utförs.

Vad skiljer HealthKit från ResearchKit?

HealthKit är avsett för lagring och utbyte av användarens hälsodata, medan ResearchKit är ett ramverk för medicinsk forskning. ResearchKit använder HealthKit som en av datakällorna men lägger till moduler för informerat samtycke, frågeformulär och aktiva uppgifter för att samla in forskningsdata.

Krävs särskilt tillstånd för HealthKit i App Store?

Ja, appar som använder HealthKit måste följa App Store Review Guidelines, avsnitt 5.1.1 — Medical and Health Data. Det krävs en tydlig beskrivning av dataanvändningen i appen, en integritetspolicy, förbud mot reklamanvändning av data och kryptering vid överföring över nätverk.

Sammanfattning

  • HealthKit — Apples standardramverk för hantering av hälsodata i iOS, introducerat 2014.
  • HKHealthStore — det centrala gränssnittet för alla operationer: spara, läsa och ta bort hälsodata.
  • Plattformen stödjer över 100 datatyper — från fysisk aktivitet till laboratorieanalyser.
  • Datasekretess säkerställs av hårdvarubaserad AES-256-kryptering och granulära behörigheter.
  • Synkronisering mellan Apple-enheter sker via iCloud med en fördröjning på mindre än 30 sekunder.
  • Integration kräver konfigurering av entitlement i Xcode och obligatorisk auktoriseringsbegäran från användaren.
  • Säkerheten för HealthKit styrs via systemets sekretessinställningar och App Store-regler.

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också