O framework HealthKit é um componente central do ecossistema de saúde da Apple que agrega dados do iPhone, Apple Watch e dispositivos de terceiros em um armazenamento local seguro. De acordo com a Apple Developer Documentation, 2025, a plataforma suporta mais de 100 tipos de dados — desde atividade física e sono até exames laboratoriais e indicadores cardiovasculares. Um único repositório de informações médicas garante sincronização perfeita entre aplicações com controle de acesso granular para cada tipo de dados.
Principais pontos
HealthKit é um framework da Apple, apresentado em 2014 juntamente com o iOS 8, projetado para o gerenciamento centralizado de dados de saúde e atividade física do usuário. A plataforma funciona como um repositório unificado onde aplicativos e dispositivos podem escrever e ler informações médicas.
Ao contrário de soluções de terceiros, o HealthKit está integrado diretamente no sistema operacional iOS, garantindo alto desempenho e segurança a nível de hardware. Os aplicativos não têm acesso direto uns aos outros — todas as operações passam pelo HKHealthStore central.
De acordo com a Apple WWDC 2024, mais de 87% dos usuários de iPhone nos EUA já usaram o aplicativo Saúde integrado pelo menos uma vez, que é baseado no HealthKit. O ecossistema inclui milhares de aplicativos de terceiros — de rastreadores de fitness a serviços de telemedicina.
A arquitetura do HealthKit é construída no princípio de armazenamento em vários níveis com contêineres isolados para cada fonte de dados. No nível inferior está um banco de dados SQLite criptografado com AES-256 por hardware. No nível superior está o HKHealthStore — a interface de interação unificada.
Cada registro contém metadados: a fonte HKSource, o dispositivo HKDevice, data, hora e um sinalizador de sincronização do iCloud. O sistema desduplica automaticamente registros duplicados da mesma fonte, evitando distorção de dados.
Os dados são agrupados por tipos — HKQuantityType para indicadores numéricos (frequência cardíaca, passos, calorias) e HKCategoryType para eventos categóricos (sono, sintomas, ciclo menstrual). Essa estrutura permite consultas flexíveis de qualquer combinação de parâmetros através de HKSampleQuery ou HKStatisticsQuery.
O HealthKit suporta mais de 100 tipos padronizados de dados, divididos em categorias: atividade física, nutrição, sono, sistema cardiovascular, saúde reprodutiva, resultados laboratoriais e sinais vitais. Cada tipo tem uma unidade de medida HKUnit e um nível de acesso.
Os desenvolvedores também podem criar correlações personalizadas através de HKCorrelation — um grupo de medições relacionadas. Por exemplo, um registro de refeição pode incluir calorias, proteínas, gorduras e carboidratos como um único objeto. Para medições sequenciais como níveis de glicose, é usado o HKSeriesSample.
Trabalhar com HealthKit começa definindo HKHealthStore — um singleton que é criado automaticamente quando o framework é importado. Através da store, o aplicativo verifica se a plataforma está disponível no dispositivo, pois o suporte pode estar ausente no iPad e iPod touch. Também é importante notar que o HealthKit não está disponível no Mac Catalyst — macOS requer uma implementação separada.
import HealthKit
let healthStore = HKHealthStore()
let stepType = HKQuantityType
.quantityType(forIdentifier: .stepCount)
let heartRateType = HKQuantityType
.quantityType(forIdentifier: .heartRate)
let typesToRead: Set = [stepType, heartRateType]
O HealthKit funciona como um mediador entre fontes de dados e aplicativos, usando um modelo assíncrono de publicação-assinatura. O aplicativo de origem escreve dados através do HKHealthStore, e os aplicativos assinantes recebem notificações de novos registros através do HKObserverQuery, que é executado em segundo plano.
O framework suporta sincronização em segundo plano através do iCloud: se o usuário estiver conectado, o HealthKit distribui automaticamente os dados para todos os dispositivos Apple em tempo real. Quando não há rede, as alterações são armazenadas em buffer localmente e sincronizadas quando a conexão é restaurada, sem perda de dados.
De acordo com a Apple, o atraso de sincronização entre iPhone e Apple Watch é inferior a 30 segundos para dados de atividade. Para outros tipos — sono, nutrição, resultados laboratoriais — a sincronização ocorre em um agendamento com intervalo de até 15 minutos para economizar bateria.
HKHealthStore é o singleton central através do qual todas as operações são realizadas: salvar via saveObject, ler via execute e excluir via deleteObject. Cada operação é assíncrona e retorna um resultado através de um closure, exigindo tratamento adequado de erros.
As consultas são divididas em vários tipos: HKSampleQuery para recuperar registros por critérios, HKStatisticsQuery para dados agregados — soma, média, mínimo, máximo — e HKObserverQuery para rastrear alterações em tempo real. Para atualizações periódicas em segundo plano, é usado o 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)
A integração do HealthKit começa ativando a capacidade HealthKit no Xcode e adicionando o entitlement ao projeto. Depois disso, o aplicativo solicita permissão para acessar tipos de dados específicos através da chamada requestAuthorization. Importante: o HealthKit não está disponível no simulador e requer um dispositivo físico com iOS.
O processo de integração inclui três etapas: definir os tipos de dados, solicitar autorização e realizar operações de leitura e escrita. Cada etapa é assíncrona e deve tratar erros — o usuário pode negar acesso a qualquer tipo de dados no diálogo do sistema com interruptores.
De acordo com pesquisas da Apple, aplicativos com integração HealthKit mostram um nível de envolvimento do usuário 40% maior. O fator chave de sucesso é explicar por que o aplicativo precisa de dados de saúde específicos na descrição da solicitação de autorização.
A solicitação de autorização é feita uma vez na primeira inicialização. O aplicativo especifica dois conjuntos de tipos — para leitura e para escrita. O usuário vê um diálogo do sistema com interruptores para cada tipo de dados e pode conceder acesso seletivamente, negando categorias desnecessárias.
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("Autorização obtida")
}
}
HealthKit implementa um modelo de segurança em várias camadas que inclui criptografia por hardware, sandboxing de aplicativos e permissões granulares. Todos os dados de saúde são armazenados criptografados no dispositivo e não são transmitidos para o iCloud sem o consentimento separado do usuário, que é solicitado uma única vez.
Uma característica fundamental é o mecanismo Intent: o aplicativo não tem acesso constante em segundo plano aos dados. Cada solicitação de leitura ou escrita é verificada pelo sistema operacional, e o usuário pode revogar a permissão a qualquer momento através de Ajustes — Privacidade — Saúde sem precisar reinstalar o aplicativo.
A Apple regula estritamente o uso do HealthKit nas Diretrizes de Revisão da App Store. O aplicativo não pode transferir dados do HealthKit a terceiros sem consentimento explícito, não pode usá-los para publicidade ou segmentação e não pode armazená-los por mais tempo do que o necessário para a funcionalidade declarada.
O HealthKit tem várias limitações: o tamanho máximo do banco de dados no dispositivo é de 1 GB, o limite de registros em uma única consulta é de 1000 e o intervalo mínimo entre tipos de dados idênticos é de 1 segundo. O framework também limita atualizações em segundo plano — não mais de 60 acionamentos do HKObserverQuery por dia.
Essas limitações são compensadas pelo desempenho: ler 1000 registros leva em média 50–100 milissegundos, e escrever um único registro leva menos de 10 milissegundos. Para grandes volumes de dados, recomenda-se usar HKStatisticsCollectionQuery com pré-agregação em vez de buscar registros individuais. O HealthKit processa consultas de forma assíncrona — o aplicativo não é bloqueado enquanto aguarda dados do HKHealthStore.
Perguntas frequentes
O HealthKit é suportado em todos os dispositivos com iOS 8 e posteriores, incluindo iPhone, iPad e iPod touch. O Apple Watch transmite automaticamente dados através do iPhone pareado. Dispositivos de terceiros — pulseiras de fitness, balanças, monitores de pressão arterial — podem escrever dados através da API do HealthKit se um aplicativo correspondente estiver disponível.
Sim, o aplicativo Saúde permite exportar todos os dados em formato XML através da função “Exportar dados de saúde”. Os desenvolvedores podem ler programaticamente qualquer tipo permitido através do HKSampleQuery e exportar para seu próprio formato. Os dados de saúde não podem ser transferidos para servidores de terceiros sem o consentimento explícito do usuário.
O usuário pode excluir dados através do aplicativo Saúde ou do aplicativo de origem que os registrou. Após a exclusão, os dados não podem ser restaurados — o HealthKit não possui lixeira. A operação de exclusão é irreversível, portanto, recomenda-se que os aplicativos solicitem confirmação antes de executar deleteObject.
HealthKit é projetado para armazenar e compartilhar dados de saúde do usuário, enquanto o ResearchKit é um framework para realizar pesquisas médicas. O ResearchKit usa o HealthKit como uma de suas fontes de dados, mas adiciona módulos de consentimento informado, questionários e tarefas ativas para coleta de dados de pesquisa.
Sim, aplicativos que usam HealthKit devem cumprir as Diretrizes de Revisão da App Store, seção 5.1.1 — Dados Médicos e de Saúde. É necessária uma descrição explícita do uso de dados no aplicativo, uma política de privacidade, proibição de uso publicitário dos dados e criptografia durante a transmissão pela rede.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também