L'autorisation des données de santé est le processus d'obtention du consentement explicite de l'utilisateur pour lire et écrire des données médicales et de fitness via les API système des plateformes mobiles. Sur iOS, l'autorisation est implémentée via HealthKit avec les classes HKHealthStore et HKObjectType, tandis que sur Android elle se fait via Google Fit API avec OAuth 2.0 et FitnessOptions. Selon la documentation Apple HealthKit, 2025, les données de santé sont classées comme une catégorie d'informations hautement confidentielles. Medical accuracy and regulatory compliance are key requirements when working with such data.
Points clés
Health data authorization est un mécanisme qui exige un consentement explicite et documenté de l'utilisateur avant d'accéder à ses mesures médicales et de fitness. Contrairement aux autorisations standard (contacts, calendrier), les données de santé sont régies par des réglementations légales supplémentaires : HIPAA aux États-Unis, GDPR en Europe et la loi fédérale 152-FZ en Russie.
On iOS, health authorization is implemented through HealthKit: the user sees a screen listing all types of data the application requests and can select specific categories to grant access. On Android, Google Fit API is used with OAuth 2.0 authorization, where a separate scope is requested for each data type.
According to App Annie (2025), health and fitness applications are one of the fastest growing segments of the mobile market with an annual growth rate of 28%. Par ailleurs, 71% des utilisateurs refusent l'accès à leurs données de santé si l'application ne fournit pas une explication claire de l'objectif de la collecte.
Key difference of health authorization from other permissions is the ability to grant partial access. Un utilisateur peut autoriser la lecture des pas mais interdire l'accès aux données de fréquence cardiaque ou aux dossiers médicaux.
HealthKit est le framework d'Apple, présenté dans iOS 8, qui fournit un référentiel unifié et centralisé de données de santé. Les applications n'ont pas d'accès direct à HealthKit — elles demandent l'autorisation via HKHealthStore, et l'utilisateur décide quels types de données fournir. Toutes les données sont chiffrées sur l'appareil et synchronisées via iCloud avec un chiffrement de bout en bout.
The authorization process begins with creating an instance of HKHealthStore and calling the requestAuthorization(toShare:read:) method. L'application transmet deux ensembles de types : les types à lire (HKObjectType que l'application souhaite lire) et les types à écrire (HKSampleType que l'application souhaite enregistrer). Le système affiche un écran de consentement où l'utilisateur active ou désactive chaque type individuellement.
Une caractéristique importante : HealthKit ne montre pas au développeur quels types spécifiques l'utilisateur a autorisés sur l'écran de consentement. Après avoir appelé requestAuthorization, il est nécessaire de vérifier individuellement l'accès à chaque type via HKHealthStore.authorizationStatus(for:). According to WWDC Session 11108 (2024), Apple recommends checking authorization status before every read or write operation.
HealthKit supports hundreds of data types divided into categories: quantity (steps, heart rate, calories), characteristics (height, weight, date of birth), clinical records (allergies, vaccinations, lab results), symptoms, and menstrual cycle. Chaque type est représenté par une sous-classe de HKObjectType : HKQuantityType pour les mesures numériques et HKCategoryType pour les données catégorielles.
Avec iOS 18, Apple a étendu HealthKit pour prendre en charge les données des établissements médicaux via FHIR. Les applications peuvent demander l'accès à des dossiers médicaux structurés si l'utilisateur a connecté son hôpital ou sa clinique à l'application Santé.
Google Fit is a platform for working with fitness data on Android that uses OAuth 2.0 authorization. Contrairement à HealthKit, Google Fit n'est pas intégré dans l'OS au niveau système — c'est un service séparé de Google Play Services qui nécessite une configuration via Google Play Console et la création d'identifiants OAuth 2.0.
Pour accéder à Google Fit, l'application doit enregistrer un ID client OAuth 2.0 dans Google Cloud Console. Authorization is requested via GoogleSignInAccount and GoogleSignIn.requestPermissions(). L'utilisateur voit l'écran de consentement standard de Google avec la liste des champs demandés : fitness.activity.read, fitness.body.read, fitness.nutrition.write et autres.
Google Fit sépare les autorisations en lecture et écriture pour chaque type de donnée. Une application peut demander l'accès pour lire le nombre de pas sans demander d'autorisations d'écriture. À partir de Google Fit API v2, toutes les demandes d'autorisation doivent inclure une description de l'objectif d'utilisation des données — sans cela, la demande est rejetée par la modération de Google.
The FitnessOptions class allows declaratively specifying which data types require access. Pour chaque type, le niveau d'accès peut être défini : ACCESS_READ, ACCESS_WRITE ou les deux. L'ensemble des autorisations est transmis à GoogleSignin.requestPermissions() avec le compte de l'utilisateur.
La liste des types disponibles comprend : pas (DataType.TYPE_STEP_COUNT_DELTA), calories (TYPE_CALORIES_EXPENDED), fréquence cardiaque (TYPE_HEART_RATE_BPM), distance (TYPE_DISTANCE_DELTA), activité (TYPE_ACTIVITY_SEGMENT) et sommeil (TYPE_SLEEP_SEGMENT). Chaque type a sa propre fréquence de mise à jour et ses exigences d'autorisation.
La mise en œuvre de la demande d'autorisation des données de santé diffère considérablement entre iOS et Android. Below are working examples for HealthKit and Google Fit API.
En Swift, la demande d'autorisation HealthKit est effectuée via HKHealthStore en spécifiant les types à lire et à écrire. L'exemple montre la demande d'accès aux données de pas et de fréquence cardiaque.
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 n’est pas disponible sur cet appareil")
}
healthStore.requestAuthorization(toShare: writeTypes, read: readTypes) { success, error in
if success {
// Vérification du statut de chaque type séparément
let status = healthStore.authorizationStatus(for: readTypes.first!)
print("Autorisation HealthKit : \(status.rawValue)")
} else {
print("Erreur d'autorisation HealthKit : \(error?.localizedDescription ?? "inconnue")")
}
}
Sur Android, l'autorisation Google Fit est effectuée via GoogleSignIn et FitnessOptions. L'exemple montre la demande d'accès aux données de pas et de calories.
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 {
// Autorisations déjà accordées — lecture des données
readGoogleFitData(account)
}
// Traitement du résultat de la demande d’autorisation
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) }
}
}
Les données de santé appartiennent à une catégorie particulièrement sensible de données personnelles. Developers of applications working with HealthKit or Google Fit must comply with regulatory requirements in the region of their users.
In the US, health data is regulated by HIPAA (Health Insurance Portability and Accountability Act), which establishes strict requirements for the storage, transmission, and processing of medical information. Les applications travaillant avec HealthKit peuvent être conformes à HIPAA si les données sont transmises au serveur sous forme chiffrée et que l'accès est restreint.
Dans l'Union européenne, les données de santé sont considérées comme une catégorie spéciale de données personnelles selon le GDPR (article 9). Le traitement de ces données nécessite le consentement explicite de l'utilisateur et, dans la plupart des cas, une évaluation d'impact sur la protection des données. La violation des exigences du GDPR entraîne des amendes allant jusqu'à 20 millions d'euros ou 4% du chiffre d'affaires annuel de l'entreprise.
In Russie, the collection of health data is regulated by Federal Law 152-FZ “On Personal Data”. Depuis 2025, toutes les applications traitant des données médicales de citoyens russes sont tenues d'utiliser des outils de chiffrement certifiés et de stocker les données sur des serveurs situés sur le territoire de la Fédération de Russie, conformément aux exigences de Roskomnadzor.
Recommendation: before publishing an application that works with health data, consult with the legal department to verify compliance with local regulations. Apple et Google se réservent le droit de rejeter une application si sa politique de confidentialité ne répond pas aux exigences.
Foire aux questions
HealthKit is a built-in iOS framework with a local encrypted health data repository. Google Fit is a cloud service based on Google Play Services, using OAuth 2.0 for authorization. HealthKit fonctionne hors ligne, Google Fit nécessite une connexion Internet pour la synchronisation.
Oui, sur les deux plateformes. Sur iOS, l'utilisateur sélectionne des types de données spécifiques (pas, fréquence cardiaque, sommeil) sur l'écran de consentement HealthKit. On Android, the user sees the list of Google Fit scopes and can revoke individual permissions through Google account settings.
HKHealthStore is the central class of the HealthKit framework on iOS. Il gère l'autorisation, la lecture et l'écriture de toutes les données de santé. L'application ne peut pas accéder directement au référentiel HealthKit — toutes les opérations passent par HKHealthStore, garantissant une interface d'accès unifiée et le respect des droits d'accès de l'utilisateur.
The user can revoke access through Google Settings — Gérer le compte — Sécurité — Applications tierces avec accès. Sélectionnez l'application et cliquez sur « Supprimer l'accès ». Il est également possible de révoquer l'accès via Google Play Console : Services connectés — Google Fit — Gestion des applications.
If the application processes health data of users in the US and transmits it to a server, HIPAA compliance is mandatory. Si toutes les données restent localement sur l'appareil et ne sont pas transmises à des tiers, l'application peut ne pas nécessiter la conformité HIPAA, mais Apple recommande de suivre les meilleures pratiques de sécurité indépendamment de la juridiction.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi