Autorizace zdravotních dat v mobilním vývoji: podstata, fungování a přístup k HealthKit

Autor: IT Sectr Publikováno: 2026-05-22 Doba čtení: 8 min

Autorizace zdravotních dat je proces získání výslovného souhlasu uživatele pro čtení a zápis lékařských a fitness dat prostřednictvím systémových API mobilních platforem. Na iOS je autorizace implementována přes HealthKit s třídami HKHealthStore a HKObjectType, na Androidu přes Google Fit API s OAuth 2.0 a FitnessOptions. Podle Apple HealthKit Documentation, 2025 jsou zdravotní data klasifikována jako kategorie zvláště důvěrných údajů. Lékařská přesnost a soulad s předpisy jsou klíčové požadavky při práci s takovými daty.

Hlavní body

  • Health Data Authorization — povinný proces získání souhlasu pro přístup k lékařským datům uživatele.
  • HealthKit — framework Apple pro práci se zdravotními daty, včetně HKHealthStore a HKObjectType.
  • Google Fit API — platforma Android pro přístup k fitness datům přes OAuth 2.0 a FitnessOptions.
  • HKHealthStore — centrální třída iOS pro vyžádání autorizace a provádění operací se zdravotními daty.
  • Souhlas uživatele — povinný krok, při kterém uživatel vybírá konkrétní typy dat pro poskytnutí přístupu.

Co je autorizace zdravotních dat?

Autorizace zdravotních dat je mechanismus, který vyžaduje výslovný a zdokumentovaný souhlas uživatele před přístupem k jeho lékařským a fitness ukazatelům. Na rozdíl od standardních oprávnění (kontakty, kalendář) jsou zdravotní data regulována dalšími právními normami: HIPAA v USA, GDPR v Evropě a 152-FZ v Rusku.

Na iOS je zdravotní autorizace implementována přes HealthKit: uživatel vidí obrazovku se seznamem všech typů dat, které aplikace požaduje, a může vybrat konkrétní kategorie pro poskytnutí přístupu. Na Androidu se používá Google Fit API s autorizací přes OAuth 2.0, kde je pro každý typ dat vyžadován samostatný rozsah.

Podle údajů App Annie (2025) jsou aplikace pro zdraví a fitness jedním z nejrychleji rostoucích segmentů mobilního trhu s ročním růstem 28%. Současně 71% uživatelů odepírá přístup ke zdravotním datům, pokud aplikace neposkytuje jasné vysvětlení účelu sběru.

Klíčový rozdíl zdravotní autorizace od ostatních oprávnění — možnost poskytnout částečný přístup. Uživatel může povolit čtení kroků, ale zakázat přístup k údajům o srdečním tepu nebo lékařským záznamům.

Jak funguje HealthKit na iOS

HealthKit je framework Apple představený v iOS 8, který poskytuje jednotné centralizované úložiště zdravotních dat. Aplikace nemají přímý přístup k HealthKit — vyžadují autorizaci přes HKHealthStore a uživatel rozhoduje, které typy dat poskytne. Všechna data jsou šifrována na zařízení a synchronizována přes iCloud s end-to-end šifrováním.

Vyžádání přístupu k HealthKit

Proces autorizace začíná vytvořením instance HKHealthStore a voláním metody requestAuthorization(toShare:read:). Aplikace předává dvě sady typů: pro čtení (HKObjectType, které chce aplikace číst) a pro zápis (HKSampleType, které chce aplikace ukládat). Systém zobrazí obrazovku souhlasu, kde uživatel každý typ jednotlivě zapíná nebo vypíná.

Důležitá vlastnost: HealthKit vývojáři neukazuje, které typy uživatel na obrazovce souhlasu povolil. Po volání requestAuthorization je nutné jednotlivě zkontrolovat přístup ke každému typu přes HKHealthStore.authorizationStatus(for:). Podle WWDC Session 11108 (2024) Apple doporučuje kontrolovat stav autorizace před každou operací čtení nebo zápisu.

Typy dat HKObjectType

HealthKit podporuje stovky typů dat rozdělených do kategorií: kvantitativní (kroky, puls, kalorie), charakteristiky (výška, váha, datum narození), klinické záznamy (alergie, očkování, výsledky testů), příznaky a menstruační cyklus. Každý typ je reprezentován podtřídou HKObjectType: HKQuantityType pro numerické ukazatele a HKCategoryType pro kategorická data.

Od iOS 18 Apple rozšířil HealthKit o podporu dat z lékařských institucí prostřednictvím FHIR (Fast Healthcare Interoperability Resources). Aplikace mohou žádat o přístup ke strukturovaným lékařským záznamům, pokud uživatel připojil svou nemocnici nebo kliniku k aplikaci Zdraví.

Jak funguje Google Fit API na Androidu

Google Fit je platforma pro práci s fitness daty na Androidu, která používá autorizaci přes OAuth 2.0. Na rozdíl od HealthKit není Google Fit zabudován do operačního systému na systémové úrovni — je to samostatná služba Google Play Services, která vyžaduje připojení přes Google Play Console a vytvoření OAuth 2.0 pověření.

Google Fit a OAuth 2.0

Pro přístup k Google Fit musí aplikace zaregistrovat ID klienta OAuth 2.0 v Google Cloud Console. Autorizace je vyžadována přes GoogleSignInAccount a GoogleSignIn.requestPermissions(). Uživatel vidí standardní obrazovku souhlasu Google s výčtem požadovaných rozsahů: fitness.activity.read, fitness.body.read, fitness.nutrition.write a další.

Google Fit odděluje oprávnění pro čtení a zápis pro každý typ dat. Aplikace může požádat o přístup ke čtení počtu kroků, aniž by požadovala práva k zápisu. Od Google Fit API v2 musí všechny žádosti o autorizaci obsahovat popis účelu použití dat — bez toho je žádost zamítnuta moderací Google.

FitnessOptions a Rozsahy

Třída FitnessOptions umožňuje deklarativně určit, ke kterým typům dat je vyžadován přístup. Pro každý typ lze nastavit úroveň přístupu: ACCESS_READ, ACCESS_WRITE nebo obě. Sada oprávnění je předána do GoogleSignin.requestPermissions() spolu s uživatelským účtem.

Seznam dostupných typů zahrnuje: kroky (DataType.TYPE_STEP_COUNT_DELTA), kalorie (TYPE_CALORIES_EXPENDED), puls (TYPE_HEART_RATE_BPM), vzdálenost (TYPE_DISTANCE_DELTA), aktivitu (TYPE_ACTIVITY_SEGMENT) a spánek (TYPE_SLEEP_SEGMENT). Každý typ má svou vlastní frekvenci aktualizace a požadavky na oprávnění.

Příklady kódu pro přístup ke zdravotním datům

Implementace žádosti o autorizaci zdravotních dat se výrazně liší na iOS a Androidu. Níže jsou uvedeny funkční příklady pro HealthKit a Google Fit API.

HealthKit ve Swiftu

Ve Swiftu se žádost o autorizaci HealthKit provádí přes HKHealthStore s uvedením typů pro čtení a zápis. Příklad demonstruje žádost o přístup k údajům o krocích a pulsu.

swift
import HealthKit

let healthStore = HKHealthStore()

let readTypes: Set<HKObjectType> = [
    HKObjectType.quantityType(forIdentifier: .stepCount)!,
    HKObjectType.quantityType(forIdentifier: .heartRate)!
]

let writeTypes: Set<HKSampleType> = [
    HKObjectType.quantityType(forIdentifier: .stepCount)!
]

guard HKHealthStore.isHealthDataAvailable() else {
    fatalError("HealthKit není na tomto zařízení k dispozici")
}

healthStore.requestAuthorization(toShare: writeTypes, read: readTypes) { success, error in
    if success {
        // Kontrolujeme stav každého typu zvlášť
        let status = healthStore.authorizationStatus(for: readTypes.first!)
        print("Autorizace HealthKit: \(status.rawValue)")
    } else {
        print("Chyba autorizace HealthKit: \(error?.localizedDescription ?? "neznámá")")
    }
}

Google Fit v Kotlinu

Na Androidu se autorizace Google Fit provádí přes GoogleSignIn a FitnessOptions. Příklad demonstruje žádost o přístup k údajům o krocích a kaloriích.

kotlin
val fitnessOptions = FitnessOptions.builder()
    .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
    .addDataType(DataType.TYPE_CALORIES_EXPENDED, FitnessOptions.ACCESS_READ)
    .build()

val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)

if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
    GoogleSignIn.requestPermissions(
        this,
        REQUEST_GOOGLE_FIT,
        account,
        fitnessOptions
    )
} else {
    // Oprávnění již byla udělena — čteme data
    readGoogleFitData(account)
}

// Zpracování výsledku žádosti o oprávnění
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == REQUEST_GOOGLE_FIT && resultCode == RESULT_OK) {
        val account = GoogleSignIn.getSignedInAccountFromIntent(data)
        account?.let { readGoogleFitData(it) }
    }
}

Bezpečnost a soulad s předpisy

Zdravotní data patří do zvláště citlivé kategorie osobních údajů. Vývojáři aplikací pracujících s HealthKit nebo Google Fit jsou povinni dodržovat regulační požadavky platné v regionu uživatelů.

HIPAA a GDPR pro zdravotní data

V USA jsou zdravotní data regulována zákonem HIPAA (Health Insurance Portability and Accountability Act), který stanoví přísné požadavky na ukládání, přenos a zpracování lékařských informací. Aplikace pracující s HealthKit mohou být v souladu s HIPAA, pokud jsou data odesílána na server v šifrované podobě a přístup k nim je omezen.

V Evropské unii jsou zdravotní data považována za zvláštní kategorii osobních údajů podle GDPR (článek 9). Zpracování takových údajů vyžaduje výslovný souhlas uživatele a ve většině případů provedení posouzení vlivu na ochranu osobních údajů. Porušení požadavků GDPR může mít za následek pokuty až 20 milionů eur nebo 4% ročního obratu společnosti.

V Rusku je sběr zdravotních dat regulován zákonem 152-FZ „O osobních údajích”. Od roku 2025 jsou všechny aplikace zpracovávající lékařské údaje občanů Ruské federace povinny používat certifikované šifrovací prostředky a ukládat data na serverech umístěných na území Ruské federace v souladu s požadavky Roskomnadzoru.

Doporučení: před zveřejněním aplikace pracující se zdravotními daty se poraďte s právním oddělením pro ověření souladu s místními předpisy. Apple a Google si vyhrazují právo aplikaci odmítnout, pokud její zásady ochrany osobních údajů nesplňují požadavky.

Často kladené otázky

Jaký je rozdíl mezi HealthKit a Google Fit?

HealthKit — vestavěný framework iOS s lokálním šifrovaným úložištěm zdravotních dat. Google Fit — cloudová služba založená na Google Play Services, která používá OAuth 2.0 k autorizaci. HealthKit funguje offline, Google Fit vyžaduje připojení k internetu pro synchronizaci.

Může uživatel poskytnout částečný přístup ke zdravotním datům?

Ano, na obou platformách. Na iOS uživatel vybírá konkrétní typy dat (kroky, puls, spánek) na obrazovce souhlasu HealthKit. Na Androidu uživatel vidí seznam rozsahů Google Fit a může odvolat jednotlivá oprávnění prostřednictvím nastavení účtu Google.

Co je HKHealthStore a k čemu slouží?

HKHealthStore — centrální třída frameworku HealthKit na iOS. Spravuje autorizaci, čtení a zápis všech zdravotních dat. Aplikace nemůže přímo přistupovat k úložišti HealthKit — všechny operace probíhají přes HKHealthStore, což zaručuje jednotné rozhraní přístupu a dodržování přístupových práv uživatele.

Jak odvolat přístup Google Fit pro aplikaci?

Uživatel může odvolat přístup prostřednictvím Nastavení Google — Správa účtu — Zabezpečení — Aplikace třetích stran s přístupem. Vyberte aplikaci a klikněte na „Odebrat přístup”. Přístup lze také odvolat prostřednictvím Google Play Console: Související služby — Google Fit — Správa aplikací.

Je soulad s HIPAA povinný pro aplikace s HealthKit?

Pokud aplikace zpracovává zdravotní data uživatelů v USA a odesílá je na server, je soulad s HIPAA povinný. Pokud všechna data zůstávají lokálně na zařízení a nejsou předávána třetím stranám, aplikace nemusí vyžadovat soulad s HIPAA, ale Apple doporučuje dodržovat nejlepší bezpečnostní postupy bez ohledu na jurisdikci.

Shrnutí

  • Health Data Authorization — povinný proces získání výslovného souhlasu uživatele pro přístup k lékařským datům.
  • HealthKit — framework Apple pro práci se zdravotními daty přes HKHealthStore na iOS.
  • Google Fit API — platforma Android pro přístup k fitness datům přes OAuth 2.0 a FitnessOptions.
  • Typy dat — HealthKit podporuje kvantitativní, kategorická a klinická data; Google Fit — kroky, kalorie, puls, aktivitu a spánek.
  • Částečný přístup — uživatel může poskytnout přístup k některým typům dat, zatímco jiným odmítnout, na obou platformách.
  • HIPAA a GDPR — povinné regulační požadavky při zpracování zdravotních dat na území USA a Evropské unie.
  • Ruská regulace — 152-FZ vyžaduje certifikované šifrování a ukládání dat na serverech v Ruské federaci při práci s lékařskými daty občanů Ruska.

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é