El framework HealthKit es un componente central del ecosistema de salud de Apple que agrega datos del iPhone, Apple Watch y dispositivos de terceros en un almacenamiento local seguro. Según Apple Developer Documentation, 2025, la plataforma admite más de 100 tipos de datos, desde actividad física y sueño hasta análisis de laboratorio e indicadores cardiovasculares. Un repositorio único de información médica garantiza una sincronización perfecta entre aplicaciones con control de acceso granular para cada tipo de datos.
Puntos clave
HealthKit es un framework de Apple, presentado en 2014 junto con iOS 8, diseñado para la gestión centralizada de datos de salud y actividad física del usuario. La plataforma actúa como un repositorio unificado donde las aplicaciones y dispositivos pueden escribir y leer información médica.
A diferencia de las soluciones de terceros, HealthKit está integrado directamente en el sistema operativo iOS, lo que garantiza un alto rendimiento y seguridad a nivel de hardware. Las aplicaciones no tienen acceso directo entre sí — todas las operaciones pasan a través del HKHealthStore central.
Según Apple WWDC 2024, más del 87% de los usuarios de iPhone en EE. UU. han utilizado la aplicación Salud integrada al menos una vez, la cual se basa en HealthKit. El ecosistema incluye miles de aplicaciones de terceros, desde rastreadores de fitness hasta servicios de telemedicina.
La arquitectura de HealthKit se basa en el principio de almacenamiento multinivel con contenedores aislados para cada fuente de datos. En el nivel inferior se encuentra una base de datos SQLite cifrada con AES-256 por hardware. En el nivel superior está HKHealthStore, la interfaz de interacción unificada.
Cada registro contiene metadatos: la fuente HKSource, el dispositivo HKDevice, fecha, hora y una bandera de sincronización de iCloud. El sistema desduplica automáticamente los registros duplicados de una misma fuente, evitando la distorsión de datos.
Los datos se agrupan por tipos — HKQuantityType para indicadores numéricos (frecuencia cardíaca, pasos, calorías) y HKCategoryType para eventos categóricos (sueño, síntomas, ciclo menstrual). Esta estructura permite consultar cualquier combinación de parámetros de forma flexible mediante HKSampleQuery o HKStatisticsQuery.
HealthKit admite más de 100 tipos estandarizados de datos, divididos en categorías: actividad física, nutrición, sueño, sistema cardiovascular, salud reproductiva, resultados de laboratorio y signos vitales. Cada tipo tiene una unidad de medida HKUnit y un nivel de acceso.
Los desarrolladores también pueden crear correlaciones personalizadas a través de HKCorrelation, un grupo de mediciones relacionadas. Por ejemplo, un registro de comida puede incluir calorías, proteínas, grasas y carbohidratos como un solo objeto. Para mediciones secuenciales como los niveles de glucosa, se utiliza HKSeriesSample.
Trabajar con HealthKit comienza definiendo HKHealthStore, un singleton que se crea automáticamente al importar el framework. A través del store, la aplicación verifica si la plataforma está disponible en el dispositivo, ya que el soporte puede faltar en iPad y iPod touch. También es importante tener en cuenta que HealthKit no está disponible en Mac Catalyst — macOS requiere una implementación separada.
import HealthKit
let healthStore = HKHealthStore()
let stepType = HKQuantityType
.quantityType(forIdentifier: .stepCount)
let heartRateType = HKQuantityType
.quantityType(forIdentifier: .heartRate)
let typesToRead: Set = [stepType, heartRateType]
HealthKit funciona como un mediador entre fuentes de datos y aplicaciones, utilizando un modelo asíncrono de publicación-suscripción. La aplicación fuente escribe datos a través de HKHealthStore, y las aplicaciones suscriptoras reciben notificaciones de nuevos registros mediante HKObserverQuery, que se ejecuta en segundo plano.
El framework admite sincronización en segundo plano a través de iCloud: si el usuario ha iniciado sesión, HealthKit distribuye automáticamente los datos a todos los dispositivos Apple en tiempo real. Cuando no hay red, los cambios se almacenan en búfer localmente y se sincronizan al restablecerse la conexión sin pérdida de datos.
Según Apple, el retraso de sincronización entre iPhone y Apple Watch es inferior a 30 segundos para los datos de actividad. Para otros tipos — sueño, nutrición, resultados de laboratorio — la sincronización se realiza según un horario con un intervalo de hasta 15 minutos para ahorrar batería.
HKHealthStore es el singleton central a través del cual se realizan todas las operaciones: guardar mediante saveObject, leer mediante execute y eliminar mediante deleteObject. Cada operación es asíncrona y devuelve un resultado a través de un cierre, lo que requiere un manejo adecuado de errores.
Las consultas se dividen en varios tipos: HKSampleQuery para recuperar registros por criterios, HKStatisticsQuery para datos agregados — suma, promedio, mínimo, máximo — y HKObserverQuery para rastrear cambios en tiempo real. Para actualizaciones periódicas en segundo plano, se utiliza HKHeartbeatSeriesQuery.
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)
La integración de HealthKit comienza habilitando la capacidad HealthKit en Xcode y añadiendo el entitlement al proyecto. Después, la aplicación solicita permiso para acceder a tipos de datos específicos mediante la llamada requestAuthorization. Importante: HealthKit no está disponible en el simulador y requiere un dispositivo físico con iOS.
El proceso de integración incluye tres etapas: definir los tipos de datos, solicitar autorización y realizar operaciones de lectura y escritura. Cada etapa es asíncrona y debe manejar errores — el usuario puede denegar el acceso a cualquier tipo de datos en el diálogo del sistema con interruptores.
Según las investigaciones de Apple, las aplicaciones con integración de HealthKit muestran un 40% más de nivel de participación de los usuarios. El factor clave de éxito es explicar por qué la aplicación necesita datos de salud específicos en la descripción de la solicitud de autorización.
La solicitud de autorización se realiza una vez al primer inicio. La aplicación especifica dos conjuntos de tipos — para lectura y para escritura. El usuario ve un diálogo del sistema con interruptores para cada tipo de datos y puede conceder acceso de forma selectiva, denegando categorías innecesarias.
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("Autorización obtenida")
}
}
HealthKit implementa un modelo de seguridad multicapa que incluye cifrado por hardware, sandboxing de aplicaciones y permisos granulares. Todos los datos de salud se almacenan cifrados en el dispositivo y no se transmiten a iCloud sin el consentimiento explícito del usuario, que se solicita una sola vez.
Una característica clave es el mecanismo Intent: la aplicación no tiene acceso constante en segundo plano a los datos. Cada solicitud de lectura o escritura es verificada por el sistema operativo, y el usuario puede revocar el permiso en cualquier momento a través de Ajustes — Privacidad — Salud sin necesidad de reinstalar la aplicación.
Apple regula estrictamente el uso de HealthKit en las Directrices de revisión de la App Store. La aplicación no puede transferir datos de HealthKit a terceros sin consentimiento explícito, no puede usarlos para publicidad o segmentación, y no puede almacenarlos más tiempo del necesario para la funcionalidad declarada.
HealthKit tiene varias limitaciones: el tamaño máximo de la base de datos en el dispositivo es de 1 GB, el límite de registros en una sola consulta es de 1000, y el intervalo mínimo entre tipos de datos idénticos es de 1 segundo. El framework también limita las actualizaciones en segundo plano — no más de 60 activaciones de HKObserverQuery por día.
Estas limitaciones se compensan con el rendimiento: leer 1000 registros toma un promedio de 50–100 milisegundos, y escribir un solo registro toma menos de 10 milisegundos. Para grandes volúmenes de datos, se recomienda usar HKStatisticsCollectionQuery con preagregación en lugar de recuperar registros individuales. HealthKit procesa las consultas de forma asíncrona — la aplicación no se bloquea mientras espera datos de HKHealthStore.
Preguntas frecuentes
HealthKit es compatible con todos los dispositivos con iOS 8 y versiones posteriores, incluidos iPhone, iPad y iPod touch. Apple Watch transmite automáticamente los datos a través del iPhone emparejado. Los dispositivos de terceros — pulseras de fitness, básculas, monitores de presión arterial — pueden escribir datos a través de la API de HealthKit si existe una aplicación correspondiente.
Sí, la aplicación Salud permite exportar todos los datos en formato XML mediante la función “Exportar datos de salud”. Los desarrolladores pueden leer mediante programación cualquier tipo permitido a través de HKSampleQuery y exportarlo a su propio formato. Los datos de salud no pueden transferirse a servidores de terceros sin el consentimiento explícito del usuario.
El usuario puede eliminar datos a través de la aplicación Salud o de la aplicación fuente que los registró. Después de la eliminación, los datos no se pueden recuperar — HealthKit no tiene papelera. La operación de eliminación es irreversible, por lo que se recomienda a las aplicaciones solicitar confirmación antes de ejecutar deleteObject.
HealthKit está diseñado para almacenar y compartir datos de salud del usuario, mientras que ResearchKit es un framework para realizar investigaciones médicas. ResearchKit utiliza HealthKit como una de sus fuentes de datos, pero añade módulos de consentimiento informado, cuestionarios y tareas activas para la recopilación de datos de investigación.
Sí, las aplicaciones que usan HealthKit deben cumplir con las Directrices de revisión de la App Store, sección 5.1.1 — Datos médicos y de salud. Se requiere una descripción explícita del uso de datos en la aplicación, una política de privacidad, prohibición del uso publicitario de los datos y cifrado durante la transmisión por red.
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