Авторизация данных здоровья в мобильной разработке: суть, как работает и доступ к HealthKit

Автор: IT Sectr Опубликовано: 2026-05-22 Время чтения: 8 мин

Авторизация данных здоровья — это процесс получения явного согласия пользователя на чтение и запись медицинских и фитнес-данных через системные API мобильных платформ. На iOS авторизация реализована через HealthKit с классами HKHealthStore и HKObjectType, а на Android — через Google Fit API с OAuth 2.0 и FitnessOptions. По данным Apple HealthKit Documentation, 2025, данные здоровья классифицируются как категория особо конфиденциальных. Медицинская точность и соответствие регуляциям — ключевые требования при работе с такими данными.

Главное

  • Health Data Authorization — обязательный процесс получения согласия на доступ к медицинским данным пользователя.
  • HealthKit — фреймворк Apple для работы с данными здоровья, включая HKHealthStore и HKObjectType.
  • Google Fit API — платформа Android для доступа к фитнес-данным через OAuth 2.0 и FitnessOptions.
  • HKHealthStore — центральный класс iOS для запроса авторизации и выполнения операций с данными здоровья.
  • Согласие пользователя — обязательный шаг, при котором пользователь выбирает конкретные типы данных для предоставления доступа.

Что такое авторизация данных здоровья?

Авторизация данных здоровья — это механизм, который требует явного и задокументированного согласия пользователя перед доступом к его медицинским и фитнес-показателям. В отличие от стандартных разрешений (контакты, календарь), данные здоровья регулируются дополнительными юридическими нормами: HIPAA в США, GDPR в Европе и 152-ФЗ в России.

На iOS авторизация здоровья реализована через HealthKit: пользователь видит экран со списком всех типов данных, которые запрашивает приложение, и может выбрать конкретные категории для предоставления доступа. На Android используется Google Fit API с авторизацией через OAuth 2.0, где для каждого типа данных запрашивается отдельный scope.

По данным App Annie (2025), приложения для здоровья и фитнеса — один из самых быстрорастущих сегментов мобильного рынка с годовым ростом 28%. При этом 71% пользователей отказывают в доступе к данным здоровья, если приложение не предоставляет чёткого объяснения цели сбора.

Ключевое отличие авторизации здоровья от других разрешений — возможность предоставить частичный доступ. Пользователь может разрешить чтение шагов, но запретить доступ к данным сердечного ритма или медицинским записям.

Как работает HealthKit на iOS

HealthKit — это фреймворк Apple, представленный в iOS 8, который предоставляет единое централизованное хранилище данных здоровья. Приложения не имеют прямого доступа к HealthKit — они запрашивают авторизацию через HKHealthStore, и пользователь решает, какие типы данных предоставить. Все данные шифруются на устройстве и синхронизируются через iCloud с сквозным шифрованием.

Запрос доступа к HealthKit

Процесс авторизации начинается с создания экземпляра HKHealthStore и вызова метода requestAuthorization(toShare:read:). Приложение передаёт два набора типов: для чтения (HKObjectType, которые приложение хочет читать) и для записи (HKSampleType, которые приложение хочет сохранять). Система отображает экран согласия, где пользователь включает или выключает каждый тип индивидуально.

Важная особенность: HealthKit не показывает разработчику, какие именно типы пользователь разрешил на экране согласия. После вызова requestAuthorization необходимо индивидуально проверять доступ к каждому типу через HKHealthStore.authorizationStatus(for:). По данным WWDC Session 11108 (2024), Apple рекомендует проверять статус авторизации перед каждой операцией чтения или записи.

Типы данных HKObjectType

HealthKit поддерживает сотни типов данных, разделённых на категории: количество (шаги, пульс, калории), характеристики (рост, вес, дата рождения), клинические записи (аллергии, прививки, результаты анализов), симптомы и менструальный цикл. Каждый тип представлен подклассом HKObjectType: HKQuantityType для числовых показателей и HKCategoryType для категориальных данных.

С iOS 18 Apple расширила HealthKit поддержкой данных из медицинских учреждений через FHIR (Fast Healthcare Interoperability Resources). Приложения могут запрашивать доступ к структурированным медицинским записям, если пользователь подключил свою больницу или клинику к Health app.

Как работает Google Fit API на Android

Google Fit — это платформа для работы с фитнес-данными на Android, которая использует авторизацию через OAuth 2.0. В отличие от HealthKit, Google Fit не встроен в ОС на уровне системы — это отдельный сервис Google Play Services, который требует подключения через Google Play Console и создания OAuth 2.0 credentials.

Google Fit и OAuth 2.0

Для доступа к 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 и Scope

Класс 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.

HealthKit на Swift

В Swift запрос авторизации HealthKit выполняется через HKHealthStore с указанием типов для чтения и записи. Пример демонстрирует запрос доступа к данным шагов и пульса.

swift
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 ?? "неизвестная")")
    }
}

Google Fit на Kotlin

На Android авторизация Google Fit выполняется через GoogleSignIn и FitnessOptions. Пример демонстрирует запрос доступа к данным шагов и калорий.

kotlin
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 и GDPR для данных здоровья

В США данные здоровья регулируются законом HIPAA (Health Insurance Portability and Accountability Act), который устанавливает строгие требования к хранению, передаче и обработке медицинской информации. Приложения, работающие с HealthKit, могут соответствовать HIPAA, если данные передаются на сервер в зашифрованном виде и доступ к ним ограничен.

В Европейском Союзе данные здоровья считаются специальной категорией персональных данных согласно GDPR (статья 9). Обработка таких данных требует явного согласия пользователя и, в большинстве случаев, проведения оценки воздействия на защиту данных. Нарушение требований GDPR чревато штрафами до 20 миллионов евро или 4% годового оборота компании.

В России сбор данных здоровья регулируется 152-ФЗ «О персональных данных». С 2025 года все приложения, обрабатывающие медицинские данные граждан РФ, обязаны использовать сертифицированные средства шифрования и хранить данные на серверах, расположенных на территории Российской Федерации, в соответствии с требованиями Роскомнадзора.

Рекомендация: перед публикацией приложения, работающего с данными здоровья, проконсультируйтесь с юридическим отделом для проверки соответствия локальным регуляциям. Apple и Google оставляют за собой право отклонить приложение, если его политика конфиденциальности не соответствует требованиям.

Часто задаваемые вопросы

В чём отличие HealthKit от Google Fit?

HealthKit — встроенный фреймворк iOS с локальным шифрованным хранилищем данных здоровья. Google Fit — облачный сервис на базе Google Play Services, использующий OAuth 2.0 для авторизации. HealthKit работает офлайн, Google Fit требует подключения к интернету для синхронизации.

Может ли пользователь предоставить частичный доступ к данным здоровья?

Да, на обеих платформах. На iOS пользователь выбирает конкретные типы данных (шаги, пульс, сон) на экране согласия HealthKit. На Android пользователь видит список scope Google Fit и может отозвать отдельные разрешения через настройки аккаунта Google.

Что такое HKHealthStore и зачем он нужен?

HKHealthStore — центральный класс фреймворка HealthKit на iOS. Он управляет авторизацией, чтением и записью всех данных здоровья. Приложение не может напрямую обратиться к хранилищу HealthKit — все операции проходят через HKHealthStore, что гарантирует единый интерфейс доступа и соблюдение прав доступа пользователя.

Как отозвать доступ Google Fit для приложения?

Пользователь может отозвать доступ через Настройки Google — Управление аккаунтом — Безопасность — Сторонние приложения с доступом. Выберите приложение и нажмите «Удалить доступ». Также можно отозвать доступ через Google Play Console: Связанные сервисы — Google Fit — Управление приложениями.

Обязательно ли соответствие HIPAA для приложений с HealthKit?

Если приложение обрабатывает данные здоровья пользователей в США и передаёт их на сервер, соответствие HIPAA обязательно. Если все данные остаются локально на устройстве и не передаются третьим сторонам, приложение может не соответствовать HIPAA, но Apple рекомендует следовать лучшим практикам безопасности независимо от юрисдикции.

Итоги

  • Health Data Authorization — обязательный процесс получения явного согласия пользователя на доступ к медицинским данным.
  • HealthKit — фреймворк Apple для работы с данными здоровья через HKHealthStore на iOS.
  • Google Fit API — платформа Android для доступа к фитнес-данным через OAuth 2.0 и FitnessOptions.
  • Типы данных — HealthKit поддерживает количественные, категориальные и клинические данные; Google Fit — шаги, калории, пульс, активность и сон.
  • Частичный доступ — пользователь может предоставить доступ к одним типам данных, отказав в других, на обеих платформах.
  • HIPAA и GDPR — регуляторные требования, обязательные при обработке данных здоровья на территории США и Европейского Союза.
  • Российское регулирование — 152-ФЗ требует сертифицированного шифрования и хранения данных на серверах в РФ при работе с медицинскими данными граждан России.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также