HealthKit: co to je, principy fungování a integrace

Autor: IT Sectr Publikováno: 2026-03-25 Doba čtení: 8 min

Framework HealthKit je centrální komponentou ekosystému zdraví Apple, který agreguje data z iPhone, Apple Watch a zařízení třetích stran v chráněném lokálním úložišti. Podle Apple Developer Documentation, 2025 platforma podporuje více než 100 typů dat — od fyzické aktivity a spánku až po laboratorní analýzy a ukazatele kardiovaskulárního systému. Jednotné úložiště lékařských informací zajišťuje bezproblémovou synchronizaci mezi aplikacemi s granulární kontrolou přístupu pro každý typ dat.

Hlavní body

  • HealthKit — Apple framework pro sběr, ukládání a výměnu zdravotních dat mezi iOS aplikacemi.
  • HKHealthStore — centrální objekt, prostřednictvím kterého aplikace komunikují se zdravotními daty.
  • Typy dat se dělí na kvantitativní HKQuantityType a kategorické HKCategoryType.
  • Soukromí — každá aplikace žádá o povolení ke čtení a zápisu pro každý typ dat zvlášť.
  • Apple Watch automaticky přenáší data o aktivitě, tepu a trénicích do HealthKit.

Co je HealthKit?

HealthKit je Apple framework představený v roce 2014 spolu s iOS 8, určený k centrální správě dat o zdraví a fyzické aktivitě uživatele. Platforma slouží jako jednotný repozitář, do kterého mohou aplikace a zařízení zapisovat a ze kterého mohou číst lékařské informace.

Na rozdíl od řešení třetích stran je HealthKit přímo integrován do operačního systému iOS, což zajišťuje vysoký výkon a bezpečnost na hardwarové úrovni. Aplikace nemají přímý přístup jedna k druhé — všechny operace procházejí centrálním HKHealthStore.

Podle Apple WWDC 2024 více než 87 % uživatelů iPhone v USA alespoň jednou použilo vestavěnou aplikaci Zdraví, která je založena právě na HealthKit. Ekosystém zahrnuje tisíce aplikací třetích stran — od fitness trackerů až po telemedicínské služby.

Architektura HealthKit

Architektura HealthKit je postavena na principu víceúrovňového úložiště s izolovanými kontejnery pro každý zdroj dat. Na nižší úrovni se nachází databáze SQLite, šifrovaná hardwarovým AES-256. Na vyšší úrovni se nachází HKHealthStore — jednotné rozhraní pro interakci.

Každý záznam obsahuje metadata: zdroj HKSource, zařízení HKDevice, datum, čas a příznak synchronizace z iCloud. Systém automaticky deduplikuje duplicitní záznamy ze stejného zdroje, čímž zabraňuje zkreslení statistik.

Data jsou seskupena podle typů — HKQuantityType pro numerické ukazatele (tep, kroky, kalorie) a HKCategoryType pro kategorické události (spánek, příznaky, menstruační cyklus). Tato struktura umožňuje flexibilní dotazování na libovolné kombinace parametrů prostřednictvím HKSampleQuery nebo HKStatisticsQuery.

Typy dat v HealthKit

HealthKit podporuje více než 100 standardizovaných typů dat rozdělených do kategorií: fyzická aktivita, výživa, spánek, kardiovaskulární systém, reprodukční zdraví, laboratorní parametry a vitální funkce. Každý typ má měrnou jednotku HKUnit a úroveň přístupu.

Vývojář může také vytvářet vlastní korelace prostřednictvím HKCorrelation — skupinu souvisejících měření. Například záznam o jídle může obsahovat kalorie, bílkoviny, tuky a sacharidy jako jeden objekt. Pro sekvenční měření, jako je hladina glukózy, se používá HKSeriesSample.

Práce s HealthKit začíná definováním HKHealthStore — singletonu, který se automaticky vytvoří při importu frameworku. Prostřednictvím store aplikace kontroluje, zda je platforma na zařízení dostupná, protože na iPad a iPod touch může podpora chybět. Je také důležité si uvědomit, že HealthKit není k dispozici na Mac Catalyst — pro macOS je vyžadována samostatná implementace.

swift
import HealthKit

let healthStore = HKHealthStore()

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

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

let typesToRead: Set = [stepType, heartRateType]

Jak funguje HealthKit

HealthKit funguje jako prostředník mezi zdroji dat a aplikacemi, přičemž používá asynchronní model publikování-předplacení. Zdrojová aplikace zapisuje data prostřednictvím HKHealthStore a předplacené aplikace dostávají oznámení o nových záznamech prostřednictvím HKObserverQuery běžícího na pozadí.

Framework podporuje synchronizaci na pozadí prostřednictvím iCloud: pokud je uživatel přihlášen, HealthKit automaticky distribuuje data na všechna zařízení Apple v reálném čase. Při absenci sítě se změny lokálně ukládají do vyrovnávací paměti a synchronizují se po obnovení spojení bez ztráty dat.

Podle Apple je zpoždění synchronizace mezi iPhone a Apple Watch kratší než 30 sekund pro data o aktivitě. Pro ostatní typy — spánek, výživa, laboratorní parametry — synchronizace probíhá podle plánu s intervalem až 15 minut pro šetření baterie.

HKHealthStore a operace s daty

HKHealthStore — centrální singleton, prostřednictvím kterého se provádějí všechny operace: ukládání pomocí saveObject, čtení pomocí execute a mazání pomocí deleteObject. Každá operace je asynchronní a vrací výsledek prostřednictvím closure, což vyžaduje správné zpracování chyb.

Dotazy se dělí do několika typů: HKSampleQuery pro výběr záznamů podle kritérií, HKStatisticsQuery pro agregovaná data — součet, průměr, minimum, maximum — a HKObserverQuery pro sledování změn v reálném čase. Pro periodické aktualizace na pozadí se používá 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)

Integrace HealthKit do aplikace

Integrace HealthKit začíná povolením capability HealthKit v Xcode a přidáním entitlement do projektu. Poté aplikace žádá o přístupová oprávnění ke konkrétním typům dat prostřednictvím volání requestAuthorization. Důležité: HealthKit není k dispozici na simulátoru a vyžaduje fyzické zařízení s iOS.

Proces integrace zahrnuje tři fáze: definování typů dat, žádost o autorizaci a provádění operací čtení a zápisu. Každá fáze je asynchronní a musí zpracovávat chyby — uživatel může odmítnout žádost o přístup k jakémkoli typu dat v systémovém dialogovém okně s přepínači.

Podle výzkumu Apple vykazují aplikace s integrací HealthKit o 40 % vyšší míru zapojení uživatelů. Klíčovým faktorem úspěchu je vysvětlení, proč aplikace potřebuje konkrétní zdravotní data v popisu žádosti o autorizaci.

Žádost o autorizaci

Žádost o autorizaci se provádí jednou při prvním spuštění. Aplikace určuje dvě sady typů — pro čtení a pro zápis. Uživatel vidí systémové dialogové okno s přepínači pro každý typ dat a může přístup udělit selektivně, zakázáním nepotřebných kategorií.

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("Autorizace získána")
    }
}

Bezpečnost HealthKit

HealthKit implementuje víceúrovňový bezpečnostní model zahrnující hardwarové šifrování, sandbox aplikací a granulární oprávnění. Všechna zdravotní data jsou ukládána šifrovaně na zařízení a nejsou přenášena do iCloud bez zvláštního souhlasu uživatele, který je vyžadován jednou.

Klíčová vlastnost — mechanismus Intent: aplikace nemá trvalý přístup na pozadí k datům. Každý požadavek na čtení nebo zápis je kontrolován operačním systémem a uživatel může kdykoli odvolat oprávnění prostřednictvím Nastavení — Soukromí — Zdraví bez nutnosti přeinstalování aplikace.

Apple přísně reguluje používání HealthKit v App Store Review Guidelines. Aplikace nesmí předávat data HealthKit třetím stranám bez výslovného souhlasu, nesmí je používat pro reklamu nebo cílení a nesmí je uchovávat déle, než je nutné pro deklarovanou funkčnost.

Limity a omezení

HealthKit má řadu omezení: maximální velikost databáze na zařízení — 1 GB, limit počtu záznamů v jednom dotazu — 1000, minimální interval mezi identickými typy dat — 1 sekunda. Framework také omezuje aktualizace na pozadí — ne více než 60 spuštění HKObserverQuery denně.

Tato omezení jsou kompenzována výkonem: čtení 1000 záznamů trvá v průměru 50–100 milisekund a zápis jednoho záznamu trvá méně než 10 milisekund. Pro velké objemy dat se doporučuje použít HKStatisticsCollectionQuery s předběžnou agregací místo výběru jednotlivých záznamů. HealthKit zpracovává dotazy asynchronně — aplikace není blokována během čekání na data z HKHealthStore.

Často kladené otázky

Která zařízení podporují HealthKit?

HealthKit je podporován na všech zařízeních s iOS 8 a novějším, včetně iPhone, iPad a iPod touch. Apple Watch automaticky přenášejí data prostřednictvím spárovaného iPhone. Zařízení třetích stran — fitness náramky, váhy, monitory tlaku — mohou zapisovat data prostřednictvím HealthKit API, pokud mají odpovídající aplikaci.

Lze exportovat data z HealthKit?

Ano, aplikace Zdraví umožňuje exportovat všechna data ve formátu XML prostřednictvím funkce „Exportovat zdravotní data”. Vývojáři mohou programově číst jakékoli povolené typy prostřednictvím HKSampleQuery a exportovat je do svého formátu. Zdravotní data nelze přenášet na servery třetích stran bez výslovného souhlasu uživatele.

Jak HealthKit nakládá s mazáním dat?

Uživatel může smazat data prostřednictvím aplikace Zdraví nebo prostřednictvím zdrojové aplikace, která je zaznamenala. Po smazání nelze data obnovit — HealthKit nemá koš. Operace smazání je nevratná, proto se aplikacím doporučuje žádat o potvrzení před provedením deleteObject.

Čím se HealthKit liší od ResearchKit?

HealthKit je určen pro ukládání a výměnu zdravotních dat uživatele, zatímco ResearchKit je framework pro provádění lékařského výzkumu. ResearchKit používá HealthKit jako jeden ze zdrojů dat, ale přidává moduly informovaného souhlasu, dotazníků a aktivních úkolů pro sběr výzkumných dat.

Je potřeba zvláštní povolení pro HealthKit v App Store?

Ano, aplikace používající HealthKit musí splňovat App Store Review Guidelines, sekci 5.1.1 — Medical and Health Data. Je vyžadován jasný popis použití dat v aplikaci, zásady ochrany osobních údajů, zákaz reklamního využití dat a šifrování při přenosu po síti.

Shrnutí

  • HealthKit — standardní Apple framework pro správu zdravotních dat v iOS, představený v roce 2014.
  • HKHealthStore — centrální rozhraní pro všechny operace: ukládání, čtení a mazání zdravotních dat.
  • Platforma podporuje více než 100 typů dat — od fyzické aktivity po laboratorní analýzy.
  • Soukromí dat je zajištěno hardwarovým šifrováním AES-256 a granulárními oprávněními.
  • Synchronizace mezi zařízeními Apple probíhá prostřednictvím iCloud se zpožděním kratším než 30 sekund.
  • Integrace vyžaduje konfiguraci entitlement v Xcode a povinnou žádost o autorizaci od uživatele.
  • Bezpečnost HealthKit je řízena prostřednictvím systémových nastavení ochrany soukromí a zásad App Store.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také