Авторизация данных здоровья — это процесс получения явного согласия пользователя на чтение и запись медицинских и фитнес-данных через системные API мобильных платформ. На iOS авторизация реализована через HealthKit с классами HKHealthStore и HKObjectType, а на Android — через Google Fit API с OAuth 2.0 и FitnessOptions. По данным Apple HealthKit Documentation, 2025, данные здоровья классифицируются как категория особо конфиденциальных. Медицинская точность и соответствие регуляциям — ключевые требования при работе с такими данными.
Главное
Авторизация данных здоровья — это механизм, который требует явного и задокументированного согласия пользователя перед доступом к его медицинским и фитнес-показателям. В отличие от стандартных разрешений (контакты, календарь), данные здоровья регулируются дополнительными юридическими нормами: HIPAA в США, GDPR в Европе и 152-ФЗ в России.
На iOS авторизация здоровья реализована через HealthKit: пользователь видит экран со списком всех типов данных, которые запрашивает приложение, и может выбрать конкретные категории для предоставления доступа. На Android используется Google Fit API с авторизацией через OAuth 2.0, где для каждого типа данных запрашивается отдельный scope.
По данным App Annie (2025), приложения для здоровья и фитнеса — один из самых быстрорастущих сегментов мобильного рынка с годовым ростом 28%. При этом 71% пользователей отказывают в доступе к данным здоровья, если приложение не предоставляет чёткого объяснения цели сбора.
Ключевое отличие авторизации здоровья от других разрешений — возможность предоставить частичный доступ. Пользователь может разрешить чтение шагов, но запретить доступ к данным сердечного ритма или медицинским записям.
HealthKit — это фреймворк Apple, представленный в iOS 8, который предоставляет единое централизованное хранилище данных здоровья. Приложения не имеют прямого доступа к HealthKit — они запрашивают авторизацию через HKHealthStore, и пользователь решает, какие типы данных предоставить. Все данные шифруются на устройстве и синхронизируются через iCloud с сквозным шифрованием.
Процесс авторизации начинается с создания экземпляра HKHealthStore и вызова метода requestAuthorization(toShare:read:). Приложение передаёт два набора типов: для чтения (HKObjectType, которые приложение хочет читать) и для записи (HKSampleType, которые приложение хочет сохранять). Система отображает экран согласия, где пользователь включает или выключает каждый тип индивидуально.
Важная особенность: HealthKit не показывает разработчику, какие именно типы пользователь разрешил на экране согласия. После вызова requestAuthorization необходимо индивидуально проверять доступ к каждому типу через HKHealthStore.authorizationStatus(for:). По данным WWDC Session 11108 (2024), Apple рекомендует проверять статус авторизации перед каждой операцией чтения или записи.
HealthKit поддерживает сотни типов данных, разделённых на категории: количество (шаги, пульс, калории), характеристики (рост, вес, дата рождения), клинические записи (аллергии, прививки, результаты анализов), симптомы и менструальный цикл. Каждый тип представлен подклассом HKObjectType: HKQuantityType для числовых показателей и HKCategoryType для категориальных данных.
С iOS 18 Apple расширила HealthKit поддержкой данных из медицинских учреждений через FHIR (Fast Healthcare Interoperability Resources). Приложения могут запрашивать доступ к структурированным медицинским записям, если пользователь подключил свою больницу или клинику к Health app.
Google Fit — это платформа для работы с фитнес-данными на Android, которая использует авторизацию через OAuth 2.0. В отличие от HealthKit, Google Fit не встроен в ОС на уровне системы — это отдельный сервис Google Play Services, который требует подключения через Google Play Console и создания OAuth 2.0 credentials.
Для доступа к Google Fit приложение должно зарегистрировать OAuth 2.0 client ID в Google Cloud Console. Авторизация запрашивается через GoogleSignInAccount и GoogleSignIn.requestPermissions(). Пользователь видит стандартный экран согласия Google с перечислением запрашиваемых scope: fitness.activity.read, fitness.body.read, fitness.nutrition.write и другие.
Google Fit разделяет разрешения на чтение и запись для каждого типа данных. Приложение может запросить доступ к чтению количества шагов, не запрашивая права на запись. Начиная с Google Fit API v2, все запросы авторизации должны включать описание цели использования данных — без этого запрос отклоняется модерацией Google.
Класс FitnessOptions позволяет декларативно указать, к каким типам данных требуется доступ. Для каждого типа можно задать уровень доступа: ACCESS_READ, ACCESS_WRITE или оба. Набор прав передаётся в GoogleSignin.requestPermissions() вместе с аккаунтом пользователя.
Список доступных типов включает: шаги (DataType.TYPE_STEP_COUNT_DELTA), калории (TYPE_CALORIES_EXPENDED), пульс (TYPE_HEART_RATE_BPM), дистанция (TYPE_DISTANCE_DELTA), активность (TYPE_ACTIVITY_SEGMENT) и сон (TYPE_SLEEP_SEGMENT). Каждый тип имеет свою частоту обновления и требования к разрешениям.
Реализация запроса авторизации данных здоровья существенно различается на iOS и Android. Ниже приведены рабочие примеры для HealthKit и Google Fit API.
В Swift запрос авторизации HealthKit выполняется через HKHealthStore с указанием типов для чтения и записи. Пример демонстрирует запрос доступа к данным шагов и пульса.
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 недоступен на этом устройстве")
}
healthStore.requestAuthorization(toShare: writeTypes, read: readTypes) { success, error in
if success {
// Проверяем статус каждого типа отдельно
let status = healthStore.authorizationStatus(for: readTypes.first!)
print("HealthKit авторизация: \(status.rawValue)")
} else {
print("Ошибка авторизации HealthKit: \(error?.localizedDescription ?? "неизвестная")")
}
}
На Android авторизация Google Fit выполняется через GoogleSignIn и FitnessOptions. Пример демонстрирует запрос доступа к данным шагов и калорий.
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 {
// Разрешения уже предоставлены — читаем данные
readGoogleFitData(account)
}
// Обработка результата запроса разрешений
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) }
}
}
Данные здоровья относятся к особенно чувствительной категории персональных данных. Разработчики приложений, работающих с HealthKit или Google Fit, обязаны соблюдать регуляторные требования, действующие в регионе пользователей.
В США данные здоровья регулируются законом HIPAA (Health Insurance Portability and Accountability Act), который устанавливает строгие требования к хранению, передаче и обработке медицинской информации. Приложения, работающие с HealthKit, могут соответствовать HIPAA, если данные передаются на сервер в зашифрованном виде и доступ к ним ограничен.
В Европейском Союзе данные здоровья считаются специальной категорией персональных данных согласно GDPR (статья 9). Обработка таких данных требует явного согласия пользователя и, в большинстве случаев, проведения оценки воздействия на защиту данных. Нарушение требований GDPR чревато штрафами до 20 миллионов евро или 4% годового оборота компании.
В России сбор данных здоровья регулируется 152-ФЗ «О персональных данных». С 2025 года все приложения, обрабатывающие медицинские данные граждан РФ, обязаны использовать сертифицированные средства шифрования и хранить данные на серверах, расположенных на территории Российской Федерации, в соответствии с требованиями Роскомнадзора.
Рекомендация: перед публикацией приложения, работающего с данными здоровья, проконсультируйтесь с юридическим отделом для проверки соответствия локальным регуляциям. Apple и Google оставляют за собой право отклонить приложение, если его политика конфиденциальности не соответствует требованиям.
Часто задаваемые вопросы
HealthKit — встроенный фреймворк iOS с локальным шифрованным хранилищем данных здоровья. Google Fit — облачный сервис на базе Google Play Services, использующий OAuth 2.0 для авторизации. HealthKit работает офлайн, Google Fit требует подключения к интернету для синхронизации.
Да, на обеих платформах. На iOS пользователь выбирает конкретные типы данных (шаги, пульс, сон) на экране согласия HealthKit. На Android пользователь видит список scope Google Fit и может отозвать отдельные разрешения через настройки аккаунта Google.
HKHealthStore — центральный класс фреймворка HealthKit на iOS. Он управляет авторизацией, чтением и записью всех данных здоровья. Приложение не может напрямую обратиться к хранилищу HealthKit — все операции проходят через HKHealthStore, что гарантирует единый интерфейс доступа и соблюдение прав доступа пользователя.
Пользователь может отозвать доступ через Настройки Google — Управление аккаунтом — Безопасность — Сторонние приложения с доступом. Выберите приложение и нажмите «Удалить доступ». Также можно отозвать доступ через Google Play Console: Связанные сервисы — Google Fit — Управление приложениями.
Если приложение обрабатывает данные здоровья пользователей в США и передаёт их на сервер, соответствие HIPAA обязательно. Если все данные остаются локально на устройстве и не передаются третьим сторонам, приложение может не соответствовать HIPAA, но Apple рекомендует следовать лучшим практикам безопасности независимо от юрисдикции.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также