Autoryzacja danych zdrowotnych w rozwoju aplikacji mobilnych: istota, działanie i dostęp do HealthKit

Autor: IT Sectr Opublikowano: 2026-05-22 Czas czytania: 8 min

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

  • Health Data Authorization — obowiązkowy proces uzyskiwania zgody na dostęp do danych medycznych użytkownika.
  • HealthKit — framework Apple do pracy z danymi zdrowotnymi, obejmujący HKHealthStore i HKObjectType.
  • Google Fit API — platforma Android do dostępu do danych fitnessowych przez OAuth 2.0 i FitnessOptions.
  • HKHealthStore — centralna klasa iOS do żądania autoryzacji i wykonywania operacji na danych zdrowotnych.
  • Zgoda użytkownika — obowiązkowy krok, w którym użytkownik wybiera konkretne typy danych do udostępnienia.

Czym jest autoryzacja danych zdrowotnych?

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.

Jak działa HealthKit na iOS

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.

Żądanie dostępu do HealthKit

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.

Typy danych HKObjectType

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.

Jak działa Google Fit API na Androidzie

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.

Google Fit i 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.

FitnessOptions i Zakresy

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ń.

Przykłady kodu dostępu do danych zdrowotnych

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.

HealthKit w Swift

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.

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 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")")
    }
}

Google Fit w Kotlin

Na Androidzie autoryzacja Google Fit jest wykonywana przez GoogleSignIn i FitnessOptions. Przykład demonstruje żądanie dostępu do danych kroków i kalorii.

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 {
    // 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) }
    }
}

Bezpieczeństwo i zgodność z regulacjami

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.

HIPAA i GDPR dla danych zdrowotnych

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

Czym różni się HealthKit od Google Fit?

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.

Czy użytkownik może udzielić częściowego dostępu do danych zdrowotnych?

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.

Czym jest HKHealthStore i do czego służy?

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.

Jak cofnąć dostęp Google Fit dla aplikacji?

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.

Czy zgodność z HIPAA jest obowiązkowa dla aplikacji z HealthKit?

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

  • Health Data Authorization — obowiązkowy proces uzyskiwania wyraźnej zgody użytkownika na dostęp do danych medycznych.
  • HealthKit — framework Apple do pracy z danymi zdrowotnymi przez HKHealthStore na iOS.
  • Google Fit API — platforma Android do dostępu do danych fitnessowych przez OAuth 2.0 i FitnessOptions.
  • Typy danych — HealthKit obsługuje dane ilościowe, kategoryczne i kliniczne; Google Fit — kroki, kalorie, puls, aktywność i sen.
  • Dostęp częściowy — użytkownik może udzielić dostępu do jednych typów danych, odmawiając innym, na obu platformach.
  • HIPAA i GDPR — wymogi regulacyjne obowiązkowe przy przetwarzaniu danych zdrowotnych na terenie USA i Unii Europejskiej.
  • Regulacje rosyjskie — 152-FZ wymaga certyfikowanego szyfrowania i przechowywania danych na serwerach w Federacji Rosyjskiej przy pracy z danymi medycznymi obywateli Rosji.

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.

Omów projekt

Przeczytaj również