Autoryzacja danych zdrowotnych to proces uzyskiwania wyraźnej zgody użytkownika na odczyt i zapis danych medycznych i fitnessowych poprzez systemowe API platform mobilnych. Na iOS autoryzacja jest realizowana przez HealthKit z klasami HKHealthStore i HKObjectType, a na Androidzie — przez Google Fit API z OAuth 2.0 i FitnessOptions. Według Apple HealthKit Documentation, 2025, dane zdrowotne są klasyfikowane jako kategoria szczególnie wrażliwych. Dokładność medyczna i zgodność z regulacjami to kluczowe wymagania przy pracy z takimi danymi.
Najważniejsze
Autoryzacja danych zdrowotnych to mechanizm wymagający wyraźnej i udokumentowanej zgody użytkownika przed dostępem do jego danych medycznych i fitnessowych. W przeciwieństwie do standardowych uprawnień (kontakty, kalendarz), dane zdrowotne podlegają dodatkowym regulacjom prawnym: HIPAA w USA, GDPR w Europie i 152-FZ w Rosji.
Na iOS autoryzacja zdrowotna jest realizowana przez HealthKit: użytkownik widzi ekran z listą wszystkich typów danych żądanych przez aplikację i może wybrać konkretne kategorie do udostępnienia. Na Androidzie używany jest Google Fit API z autoryzacją przez OAuth 2.0, gdzie dla każdego typu danych wymagany jest osobny zakres.
Według danych App Annie (2025), aplikacje zdrowotne i fitness to jeden z najszybciej rozwijających się segmentów rynku mobilnego z rocznym wzrostem 28%. Jednocześnie 71% użytkowników odmawia dostępu do danych zdrowotnych, jeśli aplikacja nie podaje jasnego wyjaśnienia celu zbierania.
Kluczowa różnica autoryzacji zdrowotnej od innych uprawnień — możliwość udzielenia częściowego dostępu. Użytkownik może zezwolić na odczyt kroków, ale zabronić dostępu do danych tętna lub dokumentacji medycznej.
HealthKit to framework Apple wprowadzony w iOS 8, który zapewnia jedno scentralizowane repozytorium danych zdrowotnych. Aplikacje nie mają bezpośredniego dostępu do HealthKit — żądają autoryzacji przez HKHealthStore, a użytkownik decyduje, które typy danych udostępnić. Wszystkie dane są szyfrowane na urządzeniu i synchronizowane przez iCloud z szyfrowaniem end-to-end.
Proces autoryzacji zaczyna się od utworzenia instancji HKHealthStore i wywołania metody requestAuthorization(toShare:read:). Aplikacja przekazuje dwa zestawy typów: do odczytu (HKObjectType, które aplikacja chce czytać) i do zapisu (HKSampleType, które aplikacja chce zapisywać). System wyświetla ekran zgody, gdzie użytkownik włącza lub wyłącza każdy typ indywidualnie.
Ważna cecha: HealthKit nie pokazuje deweloperowi, które typy użytkownik zezwolił na ekranie zgody. Po wywołaniu requestAuthorization należy indywidualnie sprawdzić dostęp do każdego typu przez HKHealthStore.authorizationStatus(for:). Według WWDC Session 11108 (2024), Apple zaleca sprawdzanie statusu autoryzacji przed każdą operacją odczytu lub zapisu.
HealthKit obsługuje setki typów danych podzielonych na kategorie: ilościowe (kroki, puls, kalorie), charakterystyki (wzrost, waga, data urodzenia), dokumentacja kliniczna (alergie, szczepienia, wyniki badań), objawy i cykl menstruacyjny. Każdy typ jest reprezentowany przez podklasę HKObjectType: HKQuantityType dla wskaźników liczbowych i HKCategoryType dla danych kategorycznych.
Od iOS 18 Apple rozszerzyło HealthKit o obsługę danych z placówek medycznych przez FHIR (Fast Healthcare Interoperability Resources). Aplikacje mogą żądać dostępu do ustrukturyzowanej dokumentacji medycznej, jeśli użytkownik podłączył swój szpital lub klinikę do aplikacji Zdrowie.
Google Fit to platforma do pracy z danymi fitness na Androidzie, która wykorzystuje autoryzację przez OAuth 2.0. W przeciwieństwie do HealthKit, Google Fit nie jest wbudowany w system operacyjny na poziomie systemowym — to osobna usługa Google Play Services, która wymaga połączenia przez Google Play Console i utworzenia danych uwierzytelniających OAuth 2.0.
Aby uzyskać dostęp do Google Fit, aplikacja musi zarejestrować identyfikator klienta OAuth 2.0 w Google Cloud Console. Autoryzacja jest żądana przez GoogleSignInAccount i GoogleSignIn.requestPermissions(). Użytkownik widzi standardowy ekran zgody Google z wyszczególnieniem żądanych zakresów: fitness.activity.read, fitness.body.read, fitness.nutrition.write i innych.
Google Fit rozdziela uprawnienia na odczyt i zapis dla każdego typu danych. Aplikacja może poprosić o dostęp do odczytu liczby kroków bez żądania uprawnień do zapisu. Od Google Fit API v2 wszystkie żądania autoryzacji muszą zawierać opis celu użycia danych — bez tego żądanie jest odrzucane przez moderację Google.
Klasa FitnessOptions pozwala deklaratywnie określić, do których typów danych wymagany jest dostęp. Dla każdego typu można ustawić poziom dostępu: ACCESS_READ, ACCESS_WRITE lub oba. Zestaw uprawnień jest przekazywany do GoogleSignin.requestPermissions() wraz z kontem użytkownika.
Lista dostępnych typów obejmuje: kroki (DataType.TYPE_STEP_COUNT_DELTA), kalorie (TYPE_CALORIES_EXPENDED), puls (TYPE_HEART_RATE_BPM), dystans (TYPE_DISTANCE_DELTA), aktywność (TYPE_ACTIVITY_SEGMENT) i sen (TYPE_SLEEP_SEGMENT). Każdy typ ma własną częstotliwość odświeżania i wymagania dotyczące uprawnień.
Implementacja żądania autoryzacji danych zdrowotnych znacznie różni się na iOS i Androidzie. Poniżej znajdują się działające przykłady dla HealthKit i Google Fit API.
W Swift żądanie autoryzacji HealthKit jest wykonywane przez HKHealthStore z określeniem typów do odczytu i zapisu. Przykład demonstruje żądanie dostępu do danych kroków i 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 jest niedostępny na tym urządzeniu")
}
healthStore.requestAuthorization(toShare: writeTypes, read: readTypes) { success, error in
if success {
// Sprawdzamy status każdego typu osobno
let status = healthStore.authorizationStatus(for: readTypes.first!)
print("Autoryzacja HealthKit: \(status.rawValue)")
} else {
print("Błąd autoryzacji HealthKit: \(error?.localizedDescription ?? "nieznana")")
}
}
Na Androidzie autoryzacja Google Fit jest wykonywana przez GoogleSignIn i FitnessOptions. Przykład demonstruje żądanie dostępu do danych kroków i kalorii.
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 {
// Uprawnienia już przyznane — odczytujemy dane
readGoogleFitData(account)
}
// Przetwarzanie wyniku żądania uprawnień
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) }
}
}
Dane zdrowotne należą do szczególnie wrażliwej kategorii danych osobowych. Deweloperzy aplikacji pracujących z HealthKit lub Google Fit są zobowiązani do przestrzegania wymogów regulacyjnych obowiązujących w regionie użytkowników.
W USA dane zdrowotne reguluje HIPAA (Health Insurance Portability and Accountability Act), który ustanawia surowe wymogi dotyczące przechowywania, przesyłania i przetwarzania informacji medycznych. Aplikacje pracujące z HealthKit mogą być zgodne z HIPAA, jeśli dane są przesyłane na serwer w zaszyfrowanej formie, a dostęp do nich jest ograniczony.
W Unii Europejskiej dane zdrowotne są uznawane za szczególną kategorię danych osobowych zgodnie z GDPR (artykuł 9). Przetwarzanie takich danych wymaga wyraźnej zgody użytkownika i, w większości przypadków, przeprowadzenia oceny skutków dla ochrony danych. Naruszenie wymogów GDPR grozi karami do 20 milionów euro lub 4% rocznego obrotu firmy.
W Rosji zbieranie danych zdrowotnych reguluje 152-FZ „O danych osobowych". Od 2025 roku wszystkie aplikacje przetwarzające dane medyczne obywateli Federacji Rosyjskiej muszą używać certyfikowanych narzędzi szyfrowania i przechowywać dane na serwerach znajdujących się na terytorium Federacji Rosyjskiej, zgodnie z wymogami Roskomnadzoru.
Zalecenie: przed publikacją aplikacji pracującej z danymi zdrowotnymi skonsultuj się z działem prawnym w celu sprawdzenia zgodności z lokalnymi regulacjami. Apple i Google zastrzegają sobie prawo odrzucenia aplikacji, jeśli jej polityka prywatności nie spełnia wymogów.
Często zadawane pytania
HealthKit — wbudowany framework iOS z lokalnym szyfrowanym repozytorium danych zdrowotnych. Google Fit — usługa chmurowa oparta na Google Play Services, wykorzystująca OAuth 2.0 do autoryzacji. HealthKit działa offline, Google Fit wymaga połączenia z internetem do synchronizacji.
Tak, na obu platformach. Na iOS użytkownik wybiera konkretne typy danych (kroki, puls, sen) na ekranie zgody HealthKit. Na Androidzie użytkownik widzi listę zakresów Google Fit i może cofnąć poszczególne uprawnienia przez ustawienia konta Google.
HKHealthStore — centralna klasy frameworku HealthKit na iOS. Zarządza autoryzacją, odczytem i zapisem wszystkich danych zdrowotnych. Aplikacja nie może bezpośrednio uzyskać dostępu do repozytorium HealthKit — wszystkie operacje przechodzą przez HKHealthStore, co gwarantuje jednolity interfejs dostępu i przestrzeganie praw dostępu użytkownika.
Użytkownik może cofnąć dostęp przez Ustawienia Google — Zarządzanie kontem — Bezpieczeństwo — Aplikacje zewnętrzne z dostępem. Wybierz aplikację i kliknij „Usuń dostęp". Można również cofnąć dostęp przez Google Play Console: Powiązane usługi — Google Fit — Zarządzanie aplikacjami.
Jeśli aplikacja przetwarza dane zdrowotne użytkowników w USA i przesyła je na serwer, zgodność z HIPAA jest obowiązkowa. Jeśli wszystkie dane pozostają lokalnie na urządzeniu i nie są przekazywane stronom trzecim, aplikacja może nie wymagać zgodności z HIPAA, ale Apple zaleca przestrzeganie najlepszych praktyk bezpieczeństwa niezależnie od jurysdykcji.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również