HealthKit: bu nima, ishlash tamoyillari va integratsiya

Muallif: IT Sectr Nashr etilgan: 2026-03-25 O'qish vaqti: 8 daq

HealthKit freymvorki Apple sog‘liq ekotizimining markaziy komponenti bo‘lib, u iPhone, Apple Watch va uchinchi tomon qurilmalaridan ma’lumotlarni himoyalangan mahalliy omborda to‘playdi. Apple Developer Documentation, 2025 ma’lumotlariga ko‘ra, platforma 100 dan ortiq ma’lumot turini qo‘llab-quvvatlaydi — jismoniy faollik va uyqudan tortib laboratoriya tahlillari va yurak-qon tomir tizimi ko‘rsatkichlarigacha. Yagona ombor tibbiy axborot har bir ma’lumot turi uchun donador kirish nazorati bilan ilovalar o‘rtasida uzluksiz sinxronizatsiyani ta’minlaydi.

Asosiy

  • HealthKit — iOS ilovalari o‘rtasida sog‘liq ma’lumotlarini to‘plash, saqlash va almashish uchun Apple freymvorki.
  • HKHealthStore — ilovalar sog‘liq ma’lumotlari bilan o‘zaro aloqa qiladigan markaziy ob’ekt.
  • Ma’lumot turlari miqdoriy HKQuantityType va kategorik HKCategoryType ga bo‘linadi.
  • Maxfiylik — har bir ilova har bir ma’lumot turi uchun o‘qish va yozish ruxsatini alohida so‘raydi.
  • Apple Watch faollik, yurak urishi va mashg‘ulot ma’lumotlarini avtomatik ravishda HealthKit-ga uzatadi.

HealthKit nima?

HealthKit — Apple tomonidan 2014-yilda iOS 8 bilan birga taqdim etilgan, foydalanuvchining sog‘liq va jismoniy faollik ma’lumotlarini markazlashtirilgan boshqarish uchun mo‘ljallangan freymvork. Platforma yagona ombor vazifasini bajaradi, unga ilovalar va qurilmalar tibbiy ma’lumotlarni yozishi va o‘qishi mumkin.

Uchinchi tomon yechimlaridan farqli o‘laroq, HealthKit to‘g‘ridan-to‘g‘ri iOS operatsion tizimiga o‘rnatilgan bo‘lib, bu apparat darajasida yuqori samaradorlik va xavfsizlikni ta’minlaydi. Ilovalar bir-biriga to‘g‘ridan-to‘g‘ri kira olmaydi — barcha operatsiyalar markaziy HKHealthStore orqali amalga oshiriladi.

Apple WWDC 2024 ma’lumotlariga ko‘ra, AQShdagi iPhone foydalanuvchilarining 87% dan ortig‘i aynan HealthKit-ga asoslangan o‘rnatilgan Sog‘liq ilovasidan kamida bir marta foydalangan. Ekotizim fitnes trekerlardan tortib telemeditsina xizmatlarigacha minglab uchinchi tomon ilovalarini o‘z ichiga oladi.

HealthKit arxitekturasi

HealthKit arxitekturasi har bir ma’lumot manbai uchun izolyatsiyalangan konteynerlarga ega ko‘p darajali ombor tamoyili asosida qurilgan. Quyi darajada apparat AES-256 bilan shifrlangan SQLite ma’lumotlar bazasi joylashgan. Yuqori darajada HKHealthStore — yagona o‘zaro aloqa interfeysi joylashgan.

Har bir yozuv metama’lumotlarni o‘z ichiga oladi: HKSource manbai, HKDevice qurilmasi, sana, vaqt va iCloud-dan sinxronizatsiya bayrog‘i. Tizim bir manbadan takroriy yozuvlarni avtomatik deduplikatsiya qiladi, statistikani buzilishining oldini oladi.

Ma’lumotlar turlarga ko‘ra guruhlanadi — HKQuantityType raqamli ko‘rsatkichlar (yurak urishi, qadamlar, kaloriyalar) va HKCategoryType kategorik hodisalar (uyqu, simptomlar, hayz sikli) uchun. Bunday tuzilma HKSampleQuery yoki HKStatisticsQuery orqali parametrlarning istalgan kombinatsiyasini moslashuvchan so‘rash imkonini beradi.

HealthKit-dagi ma’lumot turlari

HealthKit 100 dan ortiq standartlashtirilgan ma’lumot turini qo‘llab-quvvatlaydi, ular toifalarga bo‘linadi: jismoniy faollik, ovqatlanish, uyqu, yurak-qon tomir tizimi, reproduktiv sog‘liq, laboratoriya ko‘rsatkichlari va hayotiy belgilar. Har bir tur HKUnit o‘lchov birligi va kirish darajasiga ega.

Dasturchi shuningdek HKCorrelation orqali maxsus korrelyatsiyalar yaratishi mumkin — bog‘liq o‘lchovlar guruhi. Masalan, ovqat yozuvi kaloriya, oqsil, yog‘ va uglevodlarni yagona ob’ekt sifatida o‘z ichiga olishi mumkin. Ketma-ket o‘lchovlar, masalan glyukoza darajasi uchun HKSeriesSample ishlatiladi.

HealthKit bilan ishlash HKHealthStore ni aniqlashdan boshlanadi — freymvork import qilinganda avtomatik yaratiladigan singleton. Store orqali ilova platforma qurilmada mavjudligini tekshiradi, chunki iPad va iPod touch-da qo‘llab-quvvatlanmasligi mumkin. Shuningdek, HealthKit Mac Catalyst-da mavjud emasligini hisobga olish kerak — macOS uchun alohida amalga oshirish talab qilinadi.

swift
import HealthKit

let healthStore = HKHealthStore()

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

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

let typesToRead: Set = [stepType, heartRateType]

HealthKit qanday ishlaydi

HealthKit ma’lumot manbalari va ilovalar o‘rtasida vositachi sifatida ishlaydi, asinxron nashr-obuna modelidan foydalanadi. Manba ilova HKHealthStore orqali ma’lumotlarni yozadi, obuna bo‘lgan ilovalar esa fonda ishlaydigan HKObserverQuery orqali yangi yozuvlar haqida bildirishnomalar oladi.

Freymvork iCloud orqali fond sinxronizatsiyasini qo‘llab-quvvatlaydi: agar foydalanuvchi tizimga kirgan bo‘lsa, HealthKit avtomatik ravishda ma’lumotlarni barcha Apple qurilmalariga real vaqtda tarqatadi. Tarmoq bo‘lmaganda o‘zgarishlar mahalliy buferlanadi va ulanish tiklanganda ma’lumot yo‘qotilmasdan sinxronlanadi.

Apple ma’lumotlariga ko‘ra, iPhone va Apple Watch o‘rtasidagi sinxronizatsiya kechikishi faollik ma’lumotlari uchun 30 soniyadan kam. Boshqa turlar — uyqu, ovqatlanish, laboratoriya ko‘rsatkichlari — uchun sinxronizatsiya batareyani tejash uchun 15 daqiqagacha interval bilan jadval bo‘yicha amalga oshiriladi.

HKHealthStore va ma’lumotlar bilan operatsiyalar

HKHealthStore — barcha operatsiyalar bajariladigan markaziy singleton: saveObject orqali saqlash, execute orqali o‘qish va deleteObject orqali o‘chirish. Har bir operatsiya asinxrondir va natijani closure orqali qaytaradi, bu xatolarni to‘g‘ri boshqarishni talab qiladi.

So‘rovlar bir necha turga bo‘linadi: HKSampleQuery mezonlar bo‘yicha yozuvlarni tanlash uchun, HKStatisticsQuery jamlangan ma’lumotlar — yig‘indi, o‘rtacha, minimal, maksimal — uchun va HKObserverQuery real vaqtda o‘zgarishlarni kuzatish uchun. Davriy fond yangilanishlari uchun HKHeartbeatSeriesQuery ishlatiladi.

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-ni ilovaga integratsiya qilish

HealthKit integratsiyasi Xcode-da HealthKit capability ni yoqish va loyihaga entitlement qo‘shish bilan boshlanadi. Shundan so‘ng, ilova requestAuthorization chaqiruvi orqali ma‘lum ma’lumot turlariga kirish ruxsatini so‘raydi. Muhim: HealthKit simulyatorda mavjud emas va iOS bo‘lgan jismoniy qurilmani talab qiladi.

Integratsiya jarayoni uch bosqichni o‘z ichiga oladi: ma’lumot turlarini aniqlash, avtorizatsiya so‘rovi va o‘qish va yozish operatsiyalarini bajarish. Har bir bosqich asinxrondir va xatolarni boshqarishi kerak — foydalanuvchi kalitlar bilan tizim dialogida istalgan ma’lumot turiga kirish so‘rovini rad etishi mumkin.

Apple tadqiqotlariga ko‘ra, HealthKit integratsiyasiga ega ilovalar foydalanuvchi jalb qilinishida 40% yuqori darajani ko‘rsatadi. Muvaffaqiyatning asosiy omili avtorizatsiya so‘rovi tavsifida ilovaga nima uchun muayyan sog‘liq ma’lumotlari kerakligini tushuntirishdir.

Avtorizatsiya so‘rovi

Avtorizatsiya so‘rovi birinchi ishga tushirishda bir marta amalga oshiriladi. Ilova ikki turdagi to‘plamni belgilaydi — o‘qish va yozish uchun. Foydalanuvchi har bir ma’lumot turi uchun kalitlarga ega tizim dialogini ko‘radi va keraksiz toifalarni taqiqlab, kirishni tanlab berishi mumkin.

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("Avtorizatsiya olindi")
    }
}

HealthKit xavfsizligi

HealthKit apparat shifrlash, ilova sandbox va donador ruxsatlarni o‘z ichiga olgan ko‘p darajali xavfsizlik modelini amalga oshiradi. Barcha sog‘liq ma’lumotlari qurilmada shifrlangan holda saqlanadi va bir marta so‘raladigan alohida foydalanuvchi roziligisiz iCloud-ga uzatilmaydi.

Asosiy xususiyat — Intent mexanizmi: ilova ma’lumotlarga doimiy fon kirishiga ega emas. Har bir o‘qish yoki yozish so‘rovi operatsion tizim tomonidan tekshiriladi va foydalanuvchi istalgan vaqtda Sozlamalar — Maxfiylik — Sog‘liq orqali ilovani qayta o‘rnatmasdan ruxsatni bekor qilishi mumkin.

Apple HealthKit-dan foydalanishni App Store Review Guidelines da qat‘iy tartibga soladi. Ilova aniq roziliksiz HealthKit ma’lumotlarini uchinchi shaxslarga uzata olmaydi, ulardan reklama yoki nishonlash uchun foydalana olmaydi va e’lon qilingan funksionallik uchun zarur bo‘lganidan ko‘proq saqlay olmaydi.

Limitlar va cheklovlar

HealthKit bir qator cheklovlarga ega: qurilmada ma’lumotlar bazasining maksimal hajmi — 1 GB, bitta so‘rovdagi yozuvlar soni chegarasi — 1000, bir xil ma’lumot turlari orasidagi minimal interval — 1 soniya. Freymvork shuningdek fon yangilanishlarini cheklaydi — kuniga 60 tadan ko‘p bo‘lmagan HKObserverQuery ishga tushirish.

Bu cheklovlar samaradorlik bilan kompensatsiya qilinadi: 1000 yozuvni o‘qish o‘rtacha 50–100 millisekund davom etadi, bitta yozuvni yozish esa 10 millisekunddan kam. Katta hajmdagi ma’lumotlar uchun alohida yozuvlarni tanlash o‘rniga oldindan agregatsiya bilan HKStatisticsCollectionQuery dan foydalanish tavsiya etiladi. HealthKit so‘rovlarni asinxron qayta ishlaydi — ilova HKHealthStore dan ma’lumot kutayotganda bloklanmaydi.

Tez-tez so‘raladigan savollar

Qaysi qurilmalar HealthKit-ni qo‘llab-quvvatlaydi?

HealthKit iOS 8 va undan yangi barcha qurilmalarda, jumladan iPhone, iPad va iPod touch da qo‘llab-quvvatlanadi. Apple Watch ulangan iPhone orqali avtomatik ma’lumot uzatadi. Uchinchi tomon qurilmalari — fitnes bilakuzuklar, tarozilar, bosim monitorlari — tegishli ilova mavjud bo‘lganda HealthKit API orqali ma’lumot yozishi mumkin.

HealthKit-dan ma’lumotlarni eksport qilish mumkinmi?

Ha, Sog‘liq ilovasi „Sog‘liq ma’lumotlarini eksport qilish” funksiyasi orqali barcha ma’lumotlarni XML formatida eksport qilish imkonini beradi. Dasturchilar HKSampleQuery orqali istalgan ruxsat etilgan turni dasturiy o‘qishi va o‘z formatiga eksport qilishi mumkin. Sog‘liq ma’lumotlari foydalanuvchining aniq roziligisiz uchinchi tomon serverlariga uzatilishi mumkin emas.

HealthKit ma’lumotlarni o‘chirishni qanday boshqaradi?

Foydalanuvchi ma’lumotlarni Sog‘liq ilovasi yoki ularni yozgan manba ilova orqali o‘chirishi mumkin. O‘chirilgandan so‘ng ma’lumotlar tiklanmaydi — HealthKit chetiga ega emas. O‘chirish operatsiyasi qaytarilmasdir, shuning uchun ilovalarga deleteObject ni bajarishdan oldin tasdiqlashni so‘rash tavsiya etiladi.

HealthKit ResearchKit-dan qanday farq qiladi?

HealthKit foydalanuvchining sog‘liq ma’lumotlarini saqlash va almashish uchun mo‘ljallangan, ResearchKit esa tibbiy tadqiqotlar o‘tkazish uchun freymvorkdir. ResearchKit HealthKit-ni ma’lumot manbalaridan biri sifatida ishlatadi, ammo tadqiqot ma’lumotlarini to‘plash uchun axborotli rozilik, so‘rovnomalar va faol vazifalar modullarini qo‘shadi.

HealthKit uchun App Store-da maxsus ruxsat kerakmi?

Ha, HealthKit-dan foydalanadigan ilovalar App Store Review Guidelines, 5.1.1-bo‘lim — Medical and Health Data talablariga javob berishi kerak. Ilovada ma’lumotlardan foydalanishning aniq tavsifi, maxfiylik siyosati, ma’lumotlardan reklama maqsadida foydalanishni taqiqlash va tarmoq orqali uzatishda shifrlash talab qilinadi.

Xulosa

  • HealthKit — 2014-yilda taqdim etilgan, iOS-da sog‘liq ma’lumotlarini boshqarish uchun standart Apple freymvorki.
  • HKHealthStore — sog‘liq ma’lumotlarini saqlash, o‘qish va o‘chirish uchun markaziy interfeys.
  • Platforma jismoniy faollikdan laboratoriya tahlillarigacha 100 dan ortiq ma’lumot turini qo‘llab-quvvatlaydi.
  • Ma’lumot maxfiyligi apparat AES-256 shifrlash va donador ruxsatlar bilan ta’minlanadi.
  • Apple qurilmalari o‘rtasida sinxronizatsiya iCloud orqali 30 soniyadan kam kechikish bilan amalga oshiriladi.
  • Integratsiya Xcode-da entitlement sozlash va foydalanuvchidan majburiy avtorizatsiya so‘rovini talab qiladi.
  • Xavfsizlik HealthKit tizim maxfiylik sozlamalari va App Store qoidalari orqali boshqariladi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing