La autorización de datos de salud es el proceso de obtener el consentimiento explícito del usuario para leer y escribir datos médicos y de fitness a través de las API del sistema de las plataformas móviles. En iOS, la autorización se implementa mediante HealthKit con las clases HKHealthStore y HKObjectType, mientras que en Android se realiza a través de Google Fit API con OAuth 2.0 y FitnessOptions. Según la Documentación de Apple HealthKit, 2025, los datos de salud se clasifican como una categoría de información altamente confidencial. La precisión médica y el cumplimiento normativo son requisitos clave al trabajar con este tipo de datos.
Puntos clave
La autorización de datos de salud es un mecanismo que requiere el consentimiento explícito y documentado del usuario antes de acceder a sus métricas médicas y de fitness. A diferencia de los permisos estándar (contactos, calendario), los datos de salud se rigen por normativas legales adicionales: HIPAA en EE.UU., GDPR en Europa y la Ley Federal 152-FZ en Rusia.
En iOS, la autorización de salud se implementa a través de HealthKit: el usuario ve una pantalla con todos los tipos de datos que solicita la aplicación y puede seleccionar categorías específicas para otorgar acceso. En Android, se utiliza Google Fit API con autorización OAuth 2.0, donde se solicita un ámbito separado para cada tipo de dato.
Según App Annie (2025), las aplicaciones de salud y fitness son uno de los segmentos de más rápido crecimiento en el mercado móvil, con una tasa de crecimiento anual del 28%. Mientras tanto, el 71% de los usuarios niegan el acceso a sus datos de salud si la aplicación no proporciona una explicación clara del propósito de la recopilación.
La diferencia clave de la autorización de salud con respecto a otros permisos es la capacidad de otorgar acceso parcial. Un usuario puede permitir la lectura de pasos pero prohibir el acceso a los datos de frecuencia cardíaca o registros médicos.
HealthKit es el framework de Apple, presentado en iOS 8, que proporciona un repositorio unificado y centralizado de datos de salud. Las aplicaciones no tienen acceso directo a HealthKit — solicitan autorización a través de HKHealthStore, y el usuario decide qué tipos de datos proporcionar. Todos los datos se cifran en el dispositivo y se sincronizan a través de iCloud con cifrado de extremo a extremo.
El proceso de autorización comienza con la creación de una instancia de HKHealthStore y la llamada al método requestAuthorization(toShare:read:). La aplicación pasa dos conjuntos de tipos: tipos para leer (HKObjectType que la aplicación desea leer) y tipos para escribir (HKSampleType que la aplicación desea guardar). El sistema muestra una pantalla de consentimiento donde el usuario activa o desactiva cada tipo individualmente.
Una característica importante: HealthKit no muestra al desarrollador qué tipos específicos permitió el usuario en la pantalla de consentimiento. Después de llamar a requestAuthorization, es necesario verificar individualmente el acceso a cada tipo mediante HKHealthStore.authorizationStatus(for:). Según WWDC Session 11108 (2024), Apple recomienda verificar el estado de autorización antes de cada operación de lectura o escritura.
HealthKit admite cientos de tipos de datos divididos en categorías: cantidad (pasos, frecuencia cardíaca, calorías), características (altura, peso, fecha de nacimiento), registros clínicos (alergias, vacunaciones, resultados de análisis), síntomas y ciclo menstrual. Cada tipo está representado por una subclase de HKObjectType: HKQuantityType para mediciones numéricas y HKCategoryType para datos categóricos.
Con iOS 18, Apple amplió HealthKit para admitir datos de instituciones médicas a través de FHIR (Fast Healthcare Interoperability Resources). Las aplicaciones pueden solicitar acceso a registros médicos estructurados si el usuario ha conectado su hospital o clínica a la aplicación Salud.
Google Fit es una plataforma para trabajar con datos de fitness en Android que utiliza autorización OAuth 2.0. A diferencia de HealthKit, Google Fit no está integrado en el sistema operativo a nivel de sistema — es un servicio separado de Google Play Services que requiere configuración a través de Google Play Console y la creación de credenciales OAuth 2.0.
Para acceder a Google Fit, la aplicación debe registrar un ID de cliente OAuth 2.0 en Google Cloud Console. La autorización se solicita a través de GoogleSignInAccount y GoogleSignIn.requestPermissions(). El usuario ve la pantalla de consentimiento estándar de Google con los ámbitos solicitados: fitness.activity.read, fitness.body.read, fitness.nutrition.write y otros.
Google Fit separa los permisos en lectura y escritura para cada tipo de dato. Una aplicación puede solicitar acceso para leer el conteo de pasos sin solicitar permisos de escritura. A partir de Google Fit API v2, todas las solicitudes de autorización deben incluir una descripción del propósito del uso de datos — sin esto, la solicitud es rechazada por la moderación de Google.
La clase FitnessOptions permite especificar de forma declarativa qué tipos de datos requieren acceso. Para cada tipo, se puede establecer el nivel de acceso: ACCESS_READ, ACCESS_WRITE o ambos. El conjunto de permisos se pasa a GoogleSignin.requestPermissions() junto con la cuenta del usuario.
La lista de tipos disponibles incluye: pasos (DataType.TYPE_STEP_COUNT_DELTA), calorías (TYPE_CALORIES_EXPENDED), frecuencia cardíaca (TYPE_HEART_RATE_BPM), distancia (TYPE_DISTANCE_DELTA), actividad (TYPE_ACTIVITY_SEGMENT) y sueño (TYPE_SLEEP_SEGMENT). Cada tipo tiene su propia frecuencia de actualización y requisitos de permisos.
La implementación de la solicitud de autorización de datos de salud difiere significativamente entre iOS y Android. A continuación se muestran ejemplos funcionales para HealthKit y Google Fit API.
En Swift, la solicitud de autorización de HealthKit se realiza a través de HKHealthStore especificando los tipos para leer y escribir. El ejemplo demuestra la solicitud de acceso a los datos de pasos y frecuencia cardíaca.
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 no está disponible en este dispositivo")
}
healthStore.requestAuthorization(toShare: writeTypes, read: readTypes) { success, error in
if success {
// Verificando el estado de cada tipo por separado
let status = healthStore.authorizationStatus(for: readTypes.first!)
print("Autorización de HealthKit: \(status.rawValue)")
} else {
print("Error de autorización de HealthKit: \(error?.localizedDescription ?? "desconocido")")
}
}
En Android, la autorización de Google Fit se realiza a través de GoogleSignIn y FitnessOptions. El ejemplo demuestra la solicitud de acceso a los datos de pasos y calorías.
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 {
// Permisos ya concedidos — leyendo datos
readGoogleFitData(account)
}
// Manejando el resultado de la solicitud de permisos
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) }
}
}
Los datos de salud pertenecen a una categoría especialmente sensible de datos personales. Los desarrolladores de aplicaciones que trabajan con HealthKit o Google Fit deben cumplir con los requisitos normativos de la región de sus usuarios.
En EE.UU., los datos de salud están regulados por HIPAA (Health Insurance Portability and Accountability Act), que establece requisitos estrictos para el almacenamiento, transmisión y procesamiento de información médica. Las aplicaciones que trabajan con HealthKit pueden cumplir con HIPAA si los datos se transmiten al servidor en forma cifrada y el acceso está restringido.
En la Unión Europea, los datos de salud se consideran una categoría especial de datos personales según el GDPR (artículo 9). El procesamiento de dichos datos requiere el consentimiento explícito del usuario y, en la mayoría de los casos, una evaluación de impacto sobre la protección de datos. La violación de los requisitos del GDPR conlleva multas de hasta 20 millones de euros o el 4% de la facturación anual de la empresa.
En Rusia, la recopilación de datos de salud está regulada por la Ley Federal 152-FZ “Sobre datos personales”. Desde 2025, todas las aplicaciones que procesan datos médicos de ciudadanos rusos deben utilizar herramientas de cifrado certificadas y almacenar datos en servidores ubicados en el territorio de la Federación Rusa, de acuerdo con los requisitos de Roskomnadzor.
Recomendación: antes de publicar una aplicación que trabaje con datos de salud, consulte con el departamento legal para verificar el cumplimiento de las normativas locales. Apple y Google se reservan el derecho de rechazar una aplicación si su política de privacidad no cumple con los requisitos.
Preguntas frecuentes
HealthKit es un framework integrado de iOS con un repositorio local cifrado de datos de salud. Google Fit es un servicio en la nube basado en Google Play Services, que utiliza OAuth 2.0 para la autorización. HealthKit funciona sin conexión, Google Fit requiere conexión a Internet para la sincronización.
Sí, en ambas plataformas. En iOS, el usuario selecciona tipos de datos específicos (pasos, frecuencia cardíaca, sueño) en la pantalla de consentimiento de HealthKit. En Android, el usuario ve la lista de ámbitos de Google Fit y puede revocar permisos individuales a través de la configuración de la cuenta de Google.
HKHealthStore es la clase central del framework HealthKit en iOS. Gestiona la autorización, lectura y escritura de todos los datos de salud. La aplicación no puede acceder directamente al repositorio de HealthKit — todas las operaciones pasan a través de HKHealthStore, lo que garantiza una interfaz de acceso unificada y el cumplimiento de los derechos de acceso del usuario.
El usuario puede revocar el acceso a través de Configuración de Google — Gestión de cuenta — Seguridad — Aplicaciones de terceros con acceso. Seleccione la aplicación y haga clic en “Eliminar acceso”. También es posible revocar el acceso a través de Google Play Console: Servicios conectados — Google Fit — Gestión de aplicaciones.
Si la aplicación procesa datos de salud de usuarios en EE.UU. y los transmite a un servidor, el cumplimiento de HIPAA es obligatorio. Si todos los datos permanecen localmente en el dispositivo y no se transmiten a terceros, es posible que la aplicación no necesite cumplir con HIPAA, pero Apple recomienda seguir las mejores prácticas de seguridad independientemente de la jurisdicción.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también