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
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.
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.
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.
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í.
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í.
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.
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í.
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.
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.
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á")")
}
}
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.
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) }
}
}
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ů.
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
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.
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.
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.
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í.
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í
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í.
Přečtěte si také