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 — كائن فردي يتم إنشاؤه تلقائيًا عند استيراد الإطار. من خلال المتجر، يتحقق التطبيق مما إذا كانت المنصة متاحة على الجهاز، حيث قد يكون الدعم غائبًا على 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 بتمكين قدرة HealthKit في Xcode وإضافة التصريح إلى المشروع. بعد ذلك، يطلب التطبيق الإذن للوصول إلى أنواع بيانات محددة عبر استدعاء 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. لا يمكن للتطبيق نقل بيانات HealthKit لأطراف ثالثة دون موافقة صريحة، ولا يمكن استخدامها للإعلانات أو الاستهداف، ولا يمكن تخزينها لفترة أطول من اللازم للوظيفة المعلنة.

الحدود والقيود

لدى HealthKit عدة قيود: الحد الأقصى لحجم قاعدة البيانات على الجهاز هو 1 جيجابايت، حد عدد السجلات في استعلام واحد هو 1000، والحد الأدنى للفاصل الزمني بين نفس أنواع البيانات هو ثانية واحدة. الإطار أيضًا يحد من التحديثات في الخلفية — لا يزيد عن 60 تفعيلاً لـ HKObserverQuery في اليوم.

هذه القيود تعوضها الأداء: قراءة 1000 سجل تستغرق في المتوسط 50–100 مللي ثانية، وكتابة سجل واحد تستغرق أقل من 10 مللي ثانية. لكميات كبيرة من البيانات، يُوصى باستخدام HKStatisticsCollectionQuery مع التجميع المسبق بدلاً من جلب السجلات الفردية. HealthKit يعالج الاستعلامات بشكل غير متزامن — التطبيق لا يتم حظره أثناء انتظار البيانات من HKHealthStore.

الأسئلة الشائعة

ما الأجهزة التي تدعم HealthKit؟

HealthKit مدعوم على جميع الأجهزة التي تعمل بـ iOS 8 والإصدارات الأحدث، بما في ذلك iPhone وiPad وiPod touch. Apple Watch ترسل البيانات تلقائيًا عبر iPhone المقترن. الأجهزة الخارجية — أساور اللياقة البدنية، الموازين، أجهزة قياس الضغط — يمكنها كتابة البيانات عبر API HealthKit إذا كان هناك تطبيق مطابق.

هل يمكن تصدير البيانات من HealthKit؟

نعم، تطبيق الصحة يسمح بتصدير جميع البيانات بتنسيق XML عبر وظيفة “تصدير بيانات الصحة”. يمكن للمطورين قراءة أي أنواع مسموحة برمجيًا عبر HKSampleQuery وتصديرها إلى تنسيقهم الخاص. لا يمكن نقل البيانات الصحية إلى خوادم خارجية دون موافقة صريحة من المستخدم.

كيف يتعامل HealthKit مع حذف البيانات؟

يمكن للمستخدم حذف البيانات عبر تطبيق الصحة أو عبر تطبيق المصدر الذي سجلها. بعد الحذف، لا يمكن استعادة البيانات — HealthKit ليس لديه سلة مهملات. عملية الحذف لا رجعة فيها، لذلك يُوصى للتطبيقات بطلب تأكيد قبل تنفيذ deleteObject.

ما الفرق بين HealthKit وResearchKit؟

HealthKit مصمم لتخزين ومشاركة بيانات صحة المستخدم، بينما ResearchKit هو إطار لإجراء البحوث الطبية. ResearchKit يستخدم HealthKit كمصدر من مصادر بياناته، لكنه يضيف وحدات للموافقة المستنيرة والاستبيانات والمهام النشطة لجمع بيانات البحث.

هل هناك حاجة لتصريح خاص لـ HealthKit في App Store؟

نعم، التطبيقات التي تستخدم HealthKit يجب أن تتوافق مع إرشادات مراجعة App Store، القسم 5.1.1 — البيانات الطبية والصحية. مطلوب وصف صريح لاستخدام البيانات في التطبيق، سياسة خصوصية، حظر الاستخدام الإعلاني للبيانات، والتشفير أثناء النقل عبر الشبكة.

الخلاصة

  • HealthKit هو إطار Apple القياسي لإدارة البيانات الصحية في iOS، تم تقديمه في 2014.
  • HKHealthStore هو الواجهة المركزية لجميع العمليات: حفظ وقراءة وحذف البيانات الصحية.
  • المنصة تدعم أكثر من 100 نوع بيانات — من النشاط البدني إلى التحاليل المخبرية.
  • خصوصية البيانات مضمونة بتشفير AES-256 عبر الأجهزة والأذونات الدقيقة.
  • المزامنة بين أجهزة Apple تتم عبر iCloud بتأخير أقل من 30 ثانية.
  • التكامل يتطلب إعداد التصاريح في Xcode وطلب تفويض إلزامي من المستخدم.
  • أمان HealthKit يتم التحكم به عبر إعدادات الخصوصية في النظام وسياسات App Store.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا