Autorizzazione dei dati sanitari nello sviluppo mobile: cos'è, come funziona e accesso a HealthKit

Autore: IT Sectr Pubblicato: 2026-05-22 Tempo di lettura: 8 min

L'autorizzazione dei dati sanitari è il processo di ottenimento del consenso esplicito dell'utente per leggere e scrivere dati medici e di fitness tramite le API di sistema delle piattaforme mobili. Su iOS l'autorizzazione è implementata tramite HealthKit con le classi HKHealthStore e HKObjectType, mentre su Android tramite Google Fit API con OAuth 2.0 e FitnessOptions. Secondo Apple HealthKit Documentation, 2025, i dati sanitari sono classificati come categoria particolarmente sensibile. Precisione medica e conformità normativa sono requisiti fondamentali quando si lavora con tali dati.

Punti chiave

  • Health Data Authorization — processo obbligatorio per ottenere il consenso all'accesso ai dati medici dell'utente.
  • HealthKit — il framework Apple per i dati sanitari, inclusi HKHealthStore e HKObjectType.
  • Google Fit API — la piattaforma Android per l'accesso ai dati di fitness tramite OAuth 2.0 e FitnessOptions.
  • HKHealthStore — la classe centrale iOS per richiedere l'autorizzazione ed eseguire operazioni sui dati sanitari.
  • Consenso dell'utente — passaggio obbligatorio in cui l'utente seleziona tipi specifici di dati da condividere.

Cos'è l'autorizzazione dei dati sanitari?

L'autorizzazione dei dati sanitari è un meccanismo che richiede il consenso esplicito e documentato dell'utente prima di accedere ai suoi parametri medici e di fitness. A differenza dei permessi standard (contatti, calendario), i dati sanitari sono soggetti a ulteriori norme legali: HIPAA negli Stati Uniti, GDPR in Europa e 152-FZ in Russia.

Su iOS l'autorizzazione sanitaria è implementata tramite HealthKit: l'utente vede una schermata con l'elenco di tutti i tipi di dati richiesti dall'app e può selezionare categorie specifiche a cui concedere l'accesso. Su Android si utilizza Google Fit API con autorizzazione tramite OAuth 2.0, dove per ogni tipo di dato viene richiesto uno scope separato.

Secondo App Annie (2025), le app per salute e fitness sono uno dei segmenti in più rapida crescita del mercato mobile, con un tasso di crescita annuo del 28%. Il 71% degli utenti nega l'accesso ai dati sanitari se l'app non fornisce una chiara spiegazione dello scopo della raccolta.

La differenza principale dell'autorizzazione sanitaria rispetto ad altri permessi è la possibilità di concedere un accesso parziale. L'utente può consentire la lettura dei passi ma negare l'accesso ai dati della frequenza cardiaca o alle cartelle cliniche.

Come funziona HealthKit su iOS?

HealthKit è un framework Apple, introdotto in iOS 8, che fornisce un archivio centralizzato unificato per i dati sanitari. Le app non hanno accesso diretto a HealthKit: richiedono l'autorizzazione tramite HKHealthStore e l'utente decide quali tipi di dati condividere. Tutti i dati sono crittografati sul dispositivo e sincronizzati tramite iCloud con crittografia end-to-end.

Richiesta di accesso a HealthKit

Il processo di autorizzazione inizia con la creazione di un'istanza di HKHealthStore e la chiamata al metodo requestAuthorization(toShare:read:). L'app passa due insiemi di tipi: per la lettura (HKObjectType che l'app vuole leggere) e per la scrittura (HKSampleType che l'app vuole salvare). Il sistema mostra una schermata di consenso in cui l'utente attiva o disattiva ogni tipo individualmente.

Una caratteristica importante: HealthKit non mostra allo sviluppatore quali tipi l'utente ha autorizzato nella schermata di consenso. Dopo la chiamata a requestAuthorization è necessario verificare individualmente l'accesso a ciascun tipo tramite HKHealthStore.authorizationStatus(for:). Secondo WWDC Session 11108 (2024), Apple raccomanda di controllare lo stato di autorizzazione prima di ogni operazione di lettura o scrittura.

Tipi di dati HKObjectType

HealthKit supporta centinaia di tipi di dati, suddivisi in categorie: quantità (passi, frequenza cardiaca, calorie), caratteristiche (altezza, peso, data di nascita), cartelle cliniche (allergie, vaccinazioni, risultati di analisi), sintomi e ciclo mestruale. Ogni tipo è rappresentato da una sottoclasse di HKObjectType: HKQuantityType per dati numerici e HKCategoryType per dati categoriali.

Con iOS 18 Apple ha esteso HealthKit per supportare i dati provenienti da strutture mediche tramite FHIR (Fast Healthcare Interoperability Resources). Le app possono richiedere l'accesso a cartelle cliniche strutturate se l'utente ha collegato il proprio ospedale o clinica all'app Salute.

Come funziona Google Fit API su Android?

Google Fit è una piattaforma per dati di fitness su Android che utilizza l'autorizzazione tramite OAuth 2.0. A differenza di HealthKit, Google Fit non è integrato a livello di sistema operativo — è un servizio separato di Google Play Services che richiede la registrazione tramite Google Play Console e la creazione di credenziali OAuth 2.0.

Google Fit e OAuth 2.0

Per accedere a Google Fit, l'app deve registrare un OAuth 2.0 client ID in Google Cloud Console. L'autorizzazione viene richiesta tramite GoogleSignInAccount e GoogleSignIn.requestPermissions(). L'utente vede la schermata di consenso standard di Google con l'elenco degli scope richiesti: fitness.activity.read, fitness.body.read, fitness.nutrition.write e altri.

Google Fit separa i permessi di lettura e scrittura per ogni tipo di dato. L'app può richiedere l'accesso in lettura al conteggio dei passi senza richiedere i permessi di scrittura. A partire da Google Fit API v2, tutte le richieste di autorizzazione devono includere una descrizione dello scopo dell'utilizzo dei dati — senza questa la richiesta viene respinta dalla moderazione di Google.

FitnessOptions e Scope

La classe FitnessOptions consente di specificare in modo dichiarativo a quali tipi di dati è necessario accedere. Per ogni tipo è possibile impostare il livello di accesso: ACCESS_READ, ACCESS_WRITE o entrambi. L'insieme dei permessi viene passato a GoogleSignin.requestPermissions() insieme all'account dell'utente.

L'elenco dei tipi disponibili include: passi (DataType.TYPE_STEP_COUNT_DELTA), calorie (TYPE_CALORIES_EXPENDED), frequenza cardiaca (TYPE_HEART_RATE_BPM), distanza (TYPE_DISTANCE_DELTA), attività (TYPE_ACTIVITY_SEGMENT) e sonno (TYPE_SLEEP_SEGMENT). Ogni tipo ha la propria frequenza di aggiornamento e requisiti di autorizzazione.

Esempi di codice per l'accesso ai dati sanitari

L'implementazione della richiesta di autorizzazione ai dati sanitari differisce significativamente tra iOS e Android. Di seguito sono riportati esempi funzionanti per HealthKit e Google Fit API.

HealthKit in Swift

In Swift, la richiesta di autorizzazione HealthKit viene eseguita tramite HKHealthStore specificando i tipi per lettura e scrittura. L'esempio mostra la richiesta di accesso ai dati di passi e frequenza cardiaca.

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 non è disponibile su questo dispositivo")
}

healthStore.requestAuthorization(toShare: writeTypes, read: readTypes) { success, error in
    if success {
        // Controlliamo lo stato di ogni tipo separatamente
        let status = healthStore.authorizationStatus(for: readTypes.first!)
        print("Autorizzazione HealthKit: \(status.rawValue)")
    } else {
        print("Errore di autorizzazione HealthKit: \(error?.localizedDescription ?? "sconosciuto")")
    }
}

Google Fit in Kotlin

Su Android, l'autorizzazione Google Fit viene eseguita tramite GoogleSignIn e FitnessOptions. L'esempio mostra la richiesta di accesso ai dati di passi e calorie.

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 {
    // Permessi già concessi — leggiamo i dati
    readGoogleFitData(account)
}

// Elaborazione del risultato della richiesta di permessi
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) }
    }
}

Sicurezza e conformità normativa

I dati sanitari appartengono a una categoria particolarmente sensibile di dati personali. Gli sviluppatori di app che lavorano con HealthKit o Google Fit devono rispettare i requisiti normativi vigenti nella regione degli utenti.

HIPAA e GDPR per i dati sanitari

Negli Stati Uniti, i dati sanitari sono regolati dalla legge HIPAA (Health Insurance Portability and Accountability Act), che stabilisce requisiti rigorosi per l'archiviazione, la trasmissione e l'elaborazione delle informazioni mediche. Le app che lavorano con HealthKit possono essere conformi a HIPAA se i dati vengono trasmessi al server in forma crittografata e l'accesso è limitato.

Nell'Unione Europea, i dati sanitari sono considerati una categoria speciale di dati personali ai sensi del GDPR (articolo 9). Il trattamento di tali dati richiede il consenso esplicito dell'utente e, nella maggior parte dei casi, una valutazione d'impatto sulla protezione dei dati. La violazione dei requisiti GDPR comporta sanzioni fino a 20 milioni di euro o al 4% del fatturato annuo globale dell'azienda.

In Russia, la raccolta di dati sanitari è regolata dalla legge 152-FZ «Sui dati personali». Dal 2025, tutte le app che elaborano dati medici di cittadini russi sono obbligate a utilizzare strumenti di crittografia certificati e a conservare i dati su server situati nel territorio della Federazione Russa, secondo i requisiti di Roskomnadzor.

Raccomandazione: prima di pubblicare un'app che lavora con dati sanitari, consultate l'ufficio legale per verificare la conformità alle normative locali. Apple e Google si riservano il diritto di rifiutare un'app se la sua politica sulla privacy non soddisfa i requisiti.

Domande frequenti

Qual è la differenza tra HealthKit e Google Fit?

HealthKit è un framework iOS integrato con un archivio locale crittografato di dati sanitari. Google Fit è un servizio cloud basato su Google Play Services che utilizza OAuth 2.0 per l'autorizzazione. HealthKit funziona offline, Google Fit richiede una connessione Internet per la sincronizzazione.

L'utente può concedere un accesso parziale ai dati sanitari?

Sì, su entrambe le piattaforme. Su iOS l'utente seleziona tipi specifici di dati (passi, frequenza cardiaca, sonno) nella schermata di consenso di HealthKit. Su Android l'utente vede l'elenco degli scope di Google Fit e può revocare singoli permessi tramite le impostazioni dell'account Google.

Cos'è HKHealthStore e a cosa serve?

HKHealthStore è la classe centrale del framework HealthKit su iOS. Gestisce l'autorizzazione, la lettura e la scrittura di tutti i dati sanitari. L'app non può accedere direttamente all'archivio HealthKit — tutte le operazioni passano attraverso HKHealthStore, garantendo un'interfaccia di accesso unificata e il rispetto dei diritti di accesso dell'utente.

Come revocare l'accesso Google Fit per un'app?

L'utente può revocare l'accesso tramite Impostazioni Google — Gestisci account — Sicurezza — App di terze parti con accesso. Selezionate l'app e fate clic su «Rimuovi accesso». È anche possibile revocare l'accesso tramite Google Play Console: Servizi collegati — Google Fit — Gestione app.

È obbligatoria la conformità HIPAA per le app con HealthKit?

Se l'app elabora dati sanitari di utenti negli Stati Uniti e li trasmette a un server, la conformità HIPAA è obbligatoria. Se tutti i dati rimangono localmente sul dispositivo e non vengono trasmessi a terze parti, l'app potrebbe non essere conforme a HIPAA, ma Apple raccomanda di seguire le migliori pratiche di sicurezza indipendentemente dalla giurisdizione.

Riepilogo

  • Health Data Authorization — processo obbligatorio per ottenere il consenso esplicito dell'utente all'accesso ai dati medici.
  • HealthKit — il framework Apple per i dati sanitari tramite HKHealthStore su iOS.
  • Google Fit API — la piattaforma Android per l'accesso ai dati di fitness tramite OAuth 2.0 e FitnessOptions.
  • Tipi di dati — HealthKit supporta dati quantitativi, categoriali e clinici; Google Fit — passi, calorie, frequenza cardiaca, attività e sonno.
  • Accesso parziale — l'utente può concedere l'accesso ad alcuni tipi di dati negandolo ad altri, su entrambe le piattaforme.
  • HIPAA e GDPR — requisiti normativi obbligatori per il trattamento dei dati sanitari negli Stati Uniti e nell'Unione Europea.
  • Normativa russa — la legge 152-FZ richiede crittografia certificata e archiviazione dei dati su server nella Federazione Russa per il trattamento di dati medici di cittadini russi.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche