HealthKit: cos’è, come funziona e integrazione

Autore: IT Sectr Pubblicato: 2026-03-25 Tempo di lettura: 8 min

Il framework HealthKit è un componente centrale dell’ecosistema salute di Apple che aggrega dati da iPhone, Apple Watch e dispositivi di terze parti in un archivio locale sicuro. Secondo Apple Developer Documentation, 2025, la piattaforma supporta oltre 100 tipi di dati — dall’attività fisica e il sonno agli esami di laboratorio e agli indicatori cardiovascolari. Un unico repository di informazioni mediche garantisce una sincronizzazione senza soluzione di continuità tra le applicazioni con un controllo granulare dell’accesso per ogni tipo di dato.

Punti chiave

  • HealthKit è il framework Apple per raccogliere, archiviare e condividere dati sanitari tra applicazioni iOS.
  • HKHealthStore è l’oggetto centrale attraverso cui le applicazioni interagiscono con i dati sanitari.
  • I tipi di dati sono divisi in quantitativi HKQuantityType e categorici HKCategoryType.
  • Privacy — ogni applicazione richiede l’autorizzazione di lettura e scrittura per ogni tipo di dato separatamente.
  • Apple Watch trasmette automaticamente i dati di attività, frequenza cardiaca e allenamenti a HealthKit.

Cos’è HealthKit?

HealthKit è un framework di Apple, presentato nel 2014 insieme a iOS 8, progettato per la gestione centralizzata dei dati di salute e attività fisica dell’utente. La piattaforma funge da repository unificato in cui applicazioni e dispositivi possono scrivere e leggere informazioni mediche.

A differenza delle soluzioni di terze parti, HealthKit è integrato direttamente nel sistema operativo iOS, garantendo alte prestazioni e sicurezza a livello hardware. Le applicazioni non hanno accesso diretto l’una all’altra — tutte le operazioni passano attraverso HKHealthStore centrale.

Secondo Apple WWDC 2024, oltre l’87% degli utenti iPhone negli Stati Uniti ha utilizzato almeno una volta l’app Salute integrata, che si basa su HealthKit. L’ecosistema include migliaia di applicazioni di terze parti — dai tracker fitness ai servizi di telemedicina.

Architettura di HealthKit

L’architettura di HealthKit è costruita sul principio di un archivio multilivello con contenitori isolati per ogni fonte di dati. Al livello inferiore si trova un database SQLite crittografato con AES-256 hardware. Al livello superiore si trova HKHealthStore — l’interfaccia di interazione unificata.

Ogni record contiene metadati: la fonte HKSource, il dispositivo HKDevice, data, ora e un flag di sincronizzazione iCloud. Il sistema deduplica automaticamente i record duplicati dalla stessa fonte, prevenendo la distorsione dei dati.

I dati sono raggruppati per tipi — HKQuantityType per indicatori numerici (frequenza cardiaca, passi, calorie) e HKCategoryType per eventi categorici (sonno, sintomi, ciclo mestruale). Questa struttura consente di interrogare flessibilmente qualsiasi combinazione di parametri tramite HKSampleQuery o HKStatisticsQuery.

Tipi di dati in HealthKit

HealthKit supporta oltre 100 tipi standardizzati di dati, suddivisi in categorie: attività fisica, nutrizione, sonno, sistema cardiovascolare, salute riproduttiva, risultati di laboratorio e segni vitali. Ogni tipo ha un’unità di misura HKUnit e un livello di accesso.

Gli sviluppatori possono anche creare correlazioni personalizzate tramite HKCorrelation — un gruppo di misurazioni correlate. Ad esempio, un record di pasto può includere calorie, proteine, grassi e carboidrati come un unico oggetto. Per misurazioni sequenziali come i livelli di glucosio, viene utilizzato HKSeriesSample.

Lavorare con HealthKit inizia definendo HKHealthStore — un singleton che viene creato automaticamente quando si importa il framework. Tramite lo store, l’applicazione verifica se la piattaforma è disponibile sul dispositivo, poiché il supporto potrebbe essere assente su iPad e iPod touch. È anche importante notare che HealthKit non è disponibile su Mac Catalyst — macOS richiede un’implementazione separata.

swift
import HealthKit

let healthStore = HKHealthStore()

let stepType = HKQuantityType
    .quantityType(forIdentifier: .stepCount)

let heartRateType = HKQuantityType
    .quantityType(forIdentifier: .heartRate)

let typesToRead: Set = [stepType, heartRateType]

Come funziona HealthKit

HealthKit funge da mediatore tra fonti di dati e applicazioni, utilizzando un modello asincrono di pubblicazione-sottoscrizione. L’applicazione sorgente scrive dati tramite HKHealthStore e le applicazioni sottoscrittrici ricevono notifiche di nuovi record tramite HKObserverQuery, che viene eseguito in background.

Il framework supporta la sincronizzazione in background tramite iCloud: se l’utente ha effettuato l’accesso, HealthKit distribuisce automaticamente i dati a tutti i dispositivi Apple in tempo reale. In assenza di rete, le modifiche vengono bufferizzate localmente e sincronizzate al ripristino della connessione senza perdita di dati.

Secondo Apple, il ritardo di sincronizzazione tra iPhone e Apple Watch è inferiore a 30 secondi per i dati di attività. Per altri tipi — sonno, nutrizione, risultati di laboratorio — la sincronizzazione avviene secondo una pianificazione con un intervallo fino a 15 minuti per risparmiare la batteria.

HKHealthStore e operazioni sui dati

HKHealthStore è il singleton centrale attraverso il quale vengono eseguite tutte le operazioni: salvataggio tramite saveObject, lettura tramite execute ed eliminazione tramite deleteObject. Ogni operazione è asincrona e restituisce un risultato tramite una closure, richiedendo una corretta gestione degli errori.

Le query sono suddivise in diversi tipi: HKSampleQuery per recuperare record per criteri, HKStatisticsQuery per dati aggregati — somma, media, minimo, massimo — e HKObserverQuery per tracciare le modifiche in tempo reale. Per aggiornamenti periodici in background, viene utilizzato HKHeartbeatSeriesQuery.

swift
let type = HKQuantityType
    .quantityType(forIdentifier: .stepCount)
let now = Date()
let start = Calendar.current
    .date(
        byAdding: .day,
        value: -7,
        to: now
    )
let predicate = HKQuery
    .predicateForSamples(
        withStart: start,
        end: now,
        options: .strictStartDate
    )
let query = HKSampleQuery(
    sampleType: type,
    predicate: predicate,
    limit: 100
) { _, samples, _ in
    for sample in samples as [HKQuantitySample] {
        print(sample.quantity)
    }
}
healthStore.execute(query)

Integrare HealthKit in un’app

L’integrazione di HealthKit inizia con l’attivazione della capacità HealthKit in Xcode e l’aggiunta dell’entitlement al progetto. Successivamente, l’applicazione richiede l’autorizzazione ad accedere a tipi di dati specifici tramite la chiamata requestAuthorization. Importante: HealthKit non è disponibile sul simulatore e richiede un dispositivo fisico con iOS.

Il processo di integrazione comprende tre fasi: definire i tipi di dati, richiedere l’autorizzazione ed eseguire operazioni di lettura e scrittura. Ogni fase è asincrona e deve gestire gli errori — l’utente può negare l’accesso a qualsiasi tipo di dato nella finestra di dialogo di sistema con interruttori.

Secondo le ricerche Apple, le applicazioni con integrazione HealthKit mostrano un livello di coinvolgimento degli utenti superiore del 40%. Il fattore chiave del successo è spiegare perché l’app ha bisogno di dati sanitari specifici nella descrizione della richiesta di autorizzazione.

Richiesta di autorizzazione

La richiesta di autorizzazione viene effettuata una volta al primo avvio. L’applicazione specifica due insiemi di tipi — per la lettura e per la scrittura. L’utente vede una finestra di dialogo di sistema con interruttori per ogni tipo di dato e può concedere l’accesso selettivamente, rifiutando le categorie non necessarie.

swift
let typesToWrite: Set = [
    HKQuantityType
        .quantityType(
            forIdentifier: .dietaryEnergyConsumed
        )
]
let typesToRead: Set = [
    HKQuantityType
        .quantityType(
            forIdentifier: .stepCount
        )
]

healthStore.requestAuthorization(
    toShare: typesToWrite,
    read: typesToRead
) { success, error in
    if success {
        print("Autorizzazione ottenuta")
    }
}

Sicurezza di HealthKit

HealthKit implementa un modello di sicurezza multilivello che include crittografia hardware, sandboxing delle applicazioni e permessi granulari. Tutti i dati sanitari sono memorizzati crittografati sul dispositivo e non vengono trasmessi a iCloud senza il consenso separato dell’utente, che viene richiesto una sola volta.

Una caratteristica fondamentale è il meccanismo Intent: l’applicazione non ha accesso costante in background ai dati. Ogni richiesta di lettura o scrittura viene verificata dal sistema operativo e l’utente può revocare l’autorizzazione in qualsiasi momento tramite Impostazioni — Privacy — Salute senza dover reinstallare l’applicazione.

Apple regolamenta rigorosamente l’uso di HealthKit nelle Linee guida per la revisione dell’App Store. L’applicazione non può trasferire i dati di HealthKit a terzi senza consenso esplicito, non può utilizzarli per pubblicità o targeting e non può conservarli più a lungo del necessario per la funzionalità dichiarata.

Limiti e vincoli

HealthKit ha diverse limitazioni: la dimensione massima del database sul dispositivo è di 1 GB, il limite del numero di record in una singola query è di 1000 e l’intervallo minimo tra tipi di dati identici è di 1 secondo. Il framework limita anche gli aggiornamenti in background — non più di 60 attivazioni di HKObserverQuery al giorno.

Queste limitazioni sono compensate dalle prestazioni: leggere 1000 record richiede in media 50–100 millisecondi e scrivere un singolo record richiede meno di 10 millisecondi. Per grandi volumi di dati, si consiglia di utilizzare HKStatisticsCollectionQuery con pre-aggregazione anziché recuperare singoli record. HealthKit elabora le query in modo asincrono — l’applicazione non viene bloccata mentre attende i dati da HKHealthStore.

Domande frequenti

Quali dispositivi supportano HealthKit?

HealthKit è supportato su tutti i dispositivi con iOS 8 e versioni successive, inclusi iPhone, iPad e iPod touch. Apple Watch trasmette automaticamente i dati tramite l’iPhone abbinato. I dispositivi di terze parti — braccialetti fitness, bilance, misuratori di pressione — possono scrivere dati tramite l’API HealthKit se è disponibile un’applicazione corrispondente.

Si possono esportare i dati da HealthKit?

Sì, l’app Salute consente di esportare tutti i dati in formato XML tramite la funzione “Esporta dati salute”. Gli sviluppatori possono leggere programmaticamente qualsiasi tipo consentito tramite HKSampleQuery ed esportarlo nel proprio formato. I dati sanitari non possono essere trasferiti a server di terze parti senza il consenso esplicito dell’utente.

Come gestisce HealthKit l’eliminazione dei dati?

L’utente può eliminare i dati tramite l’app Salute o tramite l’applicazione sorgente che li ha registrati. Dopo l’eliminazione, i dati non possono essere ripristinati — HealthKit non ha un cestino. L’operazione di eliminazione è irreversibile, pertanto si raccomanda alle applicazioni di richiedere conferma prima di eseguire deleteObject.

Qual è la differenza tra HealthKit e ResearchKit?

HealthKit è progettato per archiviare e condividere i dati sanitari dell’utente, mentre ResearchKit è un framework per condurre ricerche mediche. ResearchKit utilizza HealthKit come una delle sue fonti di dati, ma aggiunge moduli di consenso informato, questionari e attività attive per la raccolta di dati di ricerca.

È necessaria un’autorizzazione speciale per HealthKit nell’App Store?

Sì, le applicazioni che utilizzano HealthKit devono rispettare le Linee guida per la revisione dell’App Store, sezione 5.1.1 — Dati medici e sanitari. Sono richiesti una descrizione esplicita dell’uso dei dati nell’applicazione, un’informativa sulla privacy, il divieto di utilizzo pubblicitario dei dati e la crittografia durante la trasmissione in rete.

Riepilogo

  • HealthKit è il framework standard di Apple per la gestione dei dati sanitari in iOS, introdotto nel 2014.
  • HKHealthStore è l’interfaccia centrale per tutte le operazioni: salvare, leggere ed eliminare dati sanitari.
  • La piattaforma supporta oltre 100 tipi di dati — dall’attività fisica agli esami di laboratorio.
  • La privacy dei dati è garantita dalla crittografia hardware AES-256 e da permessi granulari.
  • La sincronizzazione tra dispositivi Apple avviene tramite iCloud con un ritardo inferiore a 30 secondi.
  • L’integrazione richiede la configurazione degli entitlement in Xcode e una richiesta di autorizzazione obbligatoria all’utente.
  • La sicurezza di HealthKit è controllata tramite le impostazioni sulla privacy del sistema e le politiche dell’App Store.

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