HealthKit: шта је то, принципи рада и интеграција

Аутор: IT Sectr Објављено: 2026-03-25 Време читања: 8 мин

HealthKit оквир је централна компонента Apple екосистема здравља, који агрегира податке са iPhone, Apple Watch и уређаја трећих страна у заштићеном локалном складишту. Према Apple Developer Documentation, 2025, платформа подржава преко 100 типова података — од физичке активности и сна до лабораторијских анализа и показатеља кардиоваскуларног система. Јединствено складиште медицинских информација омогућује беспрекорну синхронизацију између апликација са грануларном контролом приступа за сваки тип података.

Главно

  • HealthKit — Apple оквир за прикупљање, чување и размену података о здрављу између iOS апликација.
  • HKHealthStore — централни објекат кроз који апликације комуницирају са подацима о здрављу.
  • Типови података се деле на квантитативне HKQuantityType и категоријалне HKCategoryType.
  • Поверљивост — свака апликација појединачно тражи дозволу за читање и писање за сваки тип података посебно.
  • Apple Watch аутоматски преноси податке о активности, пулсу и тренинзима у HealthKit.

Шта је HealthKit?

HealthKit је Apple оквир представљен 2014. године заједно са iOS 8, намењен за централизовано управљање подацима о здрављу и физичкој активности корисника. Платформа служи као јединствени репозиторијум у који апликације и уређаји могу да пишу и из којег могу да читају медицинске информације.

За разлику од решења трећих страна, HealthKit је уграђен директно у iOS оперативни систем, што осигурава високу перформансу и безбедност на хардверском нивоу. Апликације немају директан приступ једна другој — све операције иду кроз централни HKHealthStore.

Према Apple WWDC 2024, преко 87% корисника iPhone-а у САД бар једном користило уграђену апликацију Здравље, која се управо заснива на HealthKit-у. Екосистем укључује хиљаде апликација трећих страна — од фитнес трекера до телемедицинских услуга.

Архитектура HealthKit-а

Архитектура HealthKit-а је изграђена на принципу вишеслојног складишта са изолованим контејнерима за сваки извор података. На доњем нивоу налази се SQLite база података, шифрована хардверским AES-256. На горњем нивоу налази се HKHealthStore — јединствени интерфејс за интеракцију.

Сваки унос садржи метаподатке: извор HKSource, уређај HKDevice, датум, време и ознаку за синхронизацију из iCloud-а. Систем аутоматски дедупликује дуплиране уносе из једног извора, спречавајући искривљавање статистике.

Подаци се групишу по типовима — HKQuantityType за бројчане показатеље (пулс, кораци, калорије) и HKCategoryType за категоријалне догађаје (сан, симптоми, менструални циклус). Оваква структура омогућује флексибилно постављање упита за било које комбинације параметара путем HKSampleQuery или HKStatisticsQuery.

Типови података у HealthKit-у

HealthKit подржава преко 100 стандардизованих типова података, подељених у категорије: физичка активност, исхрана, сан, кардиоваскуларни систем, репродуктивно здравље, лабораторијски показатељи и животни знаци. Сваки тип има мерну јединицу HKUnit и ниво приступа.

Развојач такође може да креира прилагођене корелације путем HKCorrelation — групу повезаних мерења. На пример, унос о оброку може да садржи калорије, протеине, масти и угљене хидрате као један објекат. За секвенцијална мерења, као што је ниво глукозе, користи се HKSeriesSample.

Рад са HealthKit-ом почиње одређивањем HKHealthStore-а — синглтона који се аутоматски креира при увозу оквира. Путем store-а, апликација проверава да ли је платформа доступна на уређају, јер на iPad-у и iPod touch-у подршка може да изостане. Такође је важно напоменути да HealthKit није доступан на Mac Catalyst-у — за macOS је потребна посебна имплементација.

swift
import HealthKit

let healthStore = HKHealthStore()

let stepType = HKQuantityType
    .quantityType(forIdentifier: .stepCount)

let heartRateType = HKQuantityType
    .quantityType(forIdentifier: .heartRate)

let typesToRead: Set = [stepType, heartRateType]

Како ради HealthKit

HealthKit функционише као посредник између извора података и апликација, користећи асинхрони модел публикације-претплате. Апликација извор пише податке путем HKHealthStore-а, а апликације претплатника примају обавештења о новим уносима путем HKObserverQuery-а који се покреће у позадини.

Оквир подржава синхронизацију у позадини путем iCloud-а: ако је корисник пријављен, HealthKit аутоматски проширује податке на све Apple уређаје у реалном времену. Када нема мреже, промене се буферишу локално и синхронизују по поновном успостављању везе без губитка података.

Према Apple-у, кашњење синхронизације између iPhone-а и Apple Watch-а износи мање од 30 секунди за податке о активности. За друге типове — сан, исхрана, лабораторијски показатељи — синхронизација се одвија по распореду са интервалом до 15 минута да би се уштедела батерија.

HKHealthStore и операције са подацима

HKHealthStore — централни синглтон кроз који се извршавају све операције: чување путем saveObject, читање путем execute и брисање путем deleteObject. Свака операција је асинхрона и враћа резултат путем затварања, што захтева правилно управљање грешкама.

Упити се деле на неколико типова: HKSampleQuery за избор уноса по критеријумима, HKStatisticsQuery за агрегиране податке — збир, просек, минимум, максимум — и HKObserverQuery за праћење промена у реалном времену. За периодична ажурирања у позадини користи се HKHeartbeatSeriesQuery.

swift
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)

Интеграција HealthKit-а у апликацију

Интеграција HealthKit-а почиње укључивањем capability HealthKit-а у Xcode-у и додавањем entitlement-а у пројекат. Након тога, апликација тражи дозволу за приступ одређеним типовима података путем requestAuthorization. Важно: HealthKit није доступан на симулатору и захтева физички уређај са iOS-ом.

Процес интеграције укључује три фазе: одређивање типова података, захтев ауторизације и извршавање операција читања и писања. Свака фаза је асинхрона и мора да обрађује грешке — корисник може да одбије захтев за приступ било којем типу података у системском дијалогу са прекидачима.

Према Apple истраживањима, апликације са интеграцијом HealthKit-а показују 40% виши ниво ангажованости корисника. Кључни фактор успеха је објашњење зашто су апликацији потребни одређени подаци о здрављу у опису захтева ауторизације.

Захтев ауторизације

Захтев ауторизације се извршава једном при првом покретању. Апликација наводи два сета типова — за читање и за писање. Корисник види системски дијалог са прекидачима за сваки тип података и може да одобри приступ селективно, забрањућу непотребне категорије.

swift
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("Ауторизација је прибављена")
    }
}

Безбедност HealthKit-а

HealthKit имплементира вишеслојни модел безбедности, који укључује хардверско шифровање, песчаник апликација и грануларне дозволе. Сви подаци о здрављу чувају се шифровани на уређају и не преносе се у iCloud без посебне сагласности корисника, која се тражи једнократно.

Кључна карактеристика — Intent механизам: апликација нема сталан приступ у позадини подацима. Сваки захтев за читање или писање проверава оперативни систем, а корисник може у сваком тренутку да опозове дозволу кроз Поставке — Приватност — Здравље без потребе за поновном инсталацијом апликације.

Apple строго регулише коришћење HealthKit-а у App Store Review Guidelines-у. Апликација не може да преноси HealthKit податке трећим странама без експлицитне сагласности, не може да их користи за рекламу или циљање и не може да их чува дуже него што је потребно за декларисану функционалност.

Лимити и ограничења

HealthKit има одређене лимите: максимална величина базе података на уређају — 1 ГБ, лимит броја уноса у једном упиту — 1000, минимални интервал између истих типова података — 1 секунда. Оквир такође ограничава ажурирања у позадини — не више од 60 покретања HKObserverQuery-а дневно.

Ова ограничења су компензована перформансом: читање 1000 уноса траје просечно 50–100 милисекунди, а упис једног уноса мање од 10 милисекунди. За велике количине података препоручује се коришћење HKStatisticsCollectionQuery-а са претходном агрегацијом уместо избора појединачних уноса. HealthKit обрађује упите асинхроно — апликација се не блокира док чека податке од HKHealthStore-а.

Често постављана питања

Који уређаји подржавају HealthKit?

HealthKit је подржан на свим уређајима са iOS 8 и новијим, укључујући iPhone, iPad и iPod touch. Apple Watch аутоматски преноси податке путем повезаног iPhone-а. Уређаји трећих страна — фитнес наруквице, ваге, монитори притиска — могу да пишу податке путем HealthKit API-а ако имају одговарајућу апликацију.

Могу ли се подаци извезти из HealthKit-а?

Да, апликација Здравље омогућује извоз свих података у XML формату путем функције „Извоз података о здрављу”. Развојачи могу програмски да читају било које дозвољене типове путем HKSampleQuery-а и извозе у сопствени формат. Подаци о здрављу не могу бити пренети на сервере трећих страна без експлицитне сагласности корисника.

Како HealthKit подноси брисање података?

Корисник може да обрише податке кроз апликацију Здравље или кроз апликацију извор која их је забилежила. Након брисања подаци се не враћају — HealthKit нема корпе. Операција брисања је неопозива, па се препоручује апликацијама да траже потврду пре извршавања deleteObject-а.

По чему се HealthKit разликује од ResearchKit-а?

HealthKit је намењен за чување и размену података о здрављу корисника, док је ResearchKit оквир за спровођење медицинских истраживања. ResearchKit користи HealthKit као један од извора података, али додаје модуле информисаног пристанка, упитника и активних задатака за прикупљање истраживачких података.

Да ли је потребна посебна дозвола за HealthKit у App Store-у?

Да, апликације које користе HealthKit морају да испуњавају App Store Review Guidelines, одељак 5.1.1 — Medical and Health Data. Потребан је јасан опис коришћења података у апликацији, политика приватности, забрана рекламног коришћења података и шифровање приликом преношења путем мреже.

Закључак

  • HealthKit — стандардни Apple оквир за управљање подацима о здрављу у iOS-у, представљен 2014. године.
  • HKHealthStore — централни интерфејс за све операције: чување, читање и брисање података о здрављу.
  • Платформа подржава преко 100 типова података — од физичке активности до лабораторијских анализа.
  • Поверљивост података осигурава се хардверским шифровањем AES-256 и грануларним дозволама.
  • Синхронизација између Apple уређаја одвија се путем iCloud-а са кашњењем мањим од 30 секунди.
  • Интеграција захтева подешавање entitlement-а у Xcode-у и обавезно тражење ауторизације од корисника.
  • Безбедност HealthKit-а се контролише кроз системска подешавања приватности и App Store политике.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође