HealthKit ফ্রেমওয়ার্কটি Apple হেলথ ইকোসিস্টেমের একটি কেন্দ্রীয় উপাদান যা iPhone, Apple Watch এবং তৃতীয়-পক্ষের ডিভাইস থেকে ডেটা একটি সুরক্ষিত স্থানীয় স্টোরেজে একত্রিত করে। Apple Developer Documentation, 2025 অনুসারে, প্ল্যাটফর্মটি 100টিরও বেশি ডেটা টাইপ সমর্থন করে — শারীরিক কার্যকলাপ এবং ঘুম থেকে ল্যাব পরীক্ষা এবং কার্ডিওভাসকুলার সূচক পর্যন্ত। একক ভান্ডার চিকিৎসা তথ্য প্রতিটি ডেটা টাইপের জন্য দানাদার অ্যাক্সেস নিয়ন্ত্রণ সহ অ্যাপ্লিকেশনগুলির মধ্যে নির্বিঘ্ন সিঙ্ক্রোনাইজেশন নিশ্চিত করে।
মূল পয়েন্ট
HealthKit হল Apple-এর একটি ফ্রেমওয়ার্ক, যা 2014 সালে iOS 8-এর সাথে প্রবর্তিত হয়, ব্যবহারকারীর স্বাস্থ্য এবং ফিটনেস ডেটার কেন্দ্রীভূত ব্যবস্থাপনার জন্য ডিজাইন করা হয়েছে। প্ল্যাটফর্মটি একটি একীভূত ভান্ডার হিসাবে কাজ করে যেখানে অ্যাপ্লিকেশন এবং ডিভাইসগুলি চিকিৎসা তথ্য লিখতে এবং পড়তে পারে।
তৃতীয়-পক্ষের সমাধানের বিপরীতে, HealthKit সরাসরি iOS অপারেটিং সিস্টেমে নির্মিত, যা হার্ডওয়্যার স্তরে উচ্চ কর্মক্ষমতা এবং নিরাপত্তা নিশ্চিত করে। অ্যাপ্লিকেশনগুলির একে অপরের কাছে সরাসরি অ্যাক্সেস নেই — সমস্ত অপারেশন কেন্দ্রীয় HKHealthStore-এর মাধ্যমে হয়।
Apple WWDC 2024 অনুসারে, মার্কিন যুক্তরাষ্ট্রে 87% এর বেশি iPhone ব্যবহারকারী অন্তত একবার বিল্ট-ইন স্বাস্থ্য অ্যাপ ব্যবহার করেছেন, যা HealthKit-এর উপর ভিত্তি করে তৈরি। ইকোসিস্টেমে হাজার হাজার তৃতীয়-পক্ষের অ্যাপ্লিকেশন অন্তর্ভুক্ত রয়েছে — ফিটনেস ট্র্যাকার থেকে টেলিমেডিসিন পরিষেবা পর্যন্ত।
HealthKit আর্কিটেকচার বহু-স্তরের স্টোরেজ নীতির উপর নির্মিত যেখানে প্রতিটি ডেটা উৎসের জন্য বিচ্ছিন্ন কন্টেইনার রয়েছে। নীচের স্তরে একটি SQLite ডেটাবেস রয়েছে যা হার্ডওয়্যার AES-256 দিয়ে এনক্রিপ্ট করা। উপরের স্তরে HKHealthStore — একীভূত ইন্টারঅ্যাকশন ইন্টারফেস।
প্রতিটি রেকর্ডে মেটাডেটা থাকে: HKSource উৎস, HKDevice ডিভাইস, তারিখ, সময় এবং iCloud সিঙ্ক্রোনাইজেশন ফ্ল্যাগ। সিস্টেম একই উৎস থেকে নকল রেকর্ডগুলি স্বয়ংক্রিয়ভাবে ডিডুপ্লিকেট করে, ডেটা বিকৃতি রোধ করে।
ডেটা টাইপ অনুসারে গ্রুপ করা হয় — সংখ্যাসূচক সূচকের জন্য HKQuantityType (হৃদস্পন্দন, পদক্ষেপ, ক্যালোরি) এবং শ্রেণীগত ঘটনার জন্য HKCategoryType (ঘুম, লক্ষণ, মাসিক চক্র)। এই কাঠামো HKSampleQuery বা HKStatisticsQuery-এর মাধ্যমে যে কোনও প্যারামিটার সংমিশ্রণের নমনীয় ক্যোয়ারী অনুমতি দেয়।
HealthKit 100টিরও বেশি মানসম্মত টাইপের ডেটা সমর্থন করে, যা বিভাগে বিভক্ত: শারীরিক কার্যকলাপ, পুষ্টি, ঘুম, কার্ডিওভাসকুলার সিস্টেম, প্রজনন স্বাস্থ্য, ল্যাব ফলাফল এবং গুরুত্বপূর্ণ লক্ষণ। প্রতিটি টাইপের একটি HKUnit পরিমাপ একক এবং অ্যাক্সেস স্তর রয়েছে।
ডেভেলপাররা HKCorrelation-এর মাধ্যমে কাস্টম সম্পর্ক তৈরি করতে পারে — সম্পর্কিত পরিমাপের একটি গ্রুপ। উদাহরণস্বরূপ, একটি খাবারের রেকর্ডে ক্যালোরি, প্রোটিন, চর্বি এবং কার্বোহাইড্রেট একটি একক অবজেক্ট হিসাবে অন্তর্ভুক্ত থাকতে পারে। ক্রমিক পরিমাপ যেমন গ্লুকোজ স্তরের জন্য, HKSeriesSample ব্যবহার করা হয়।
HealthKit-এর সাথে কাজ শুরু হয় HKHealthStore — একটি সিঙ্গলটন — সংজ্ঞায়িত করার মাধ্যমে যা ফ্রেমওয়ার্ক ইম্পোর্ট করার সময় স্বয়ংক্রিয়ভাবে তৈরি হয়। স্টোরের মাধ্যমে, অ্যাপ্লিকেশন পরীক্ষা করে যে প্ল্যাটফর্মটি ডিভাইসে উপলব্ধ কিনা, কারণ iPad এবং iPod touch-এ সমর্থন অনুপস্থিত থাকতে পারে। এটাও গুরুত্বপূর্ণ যে HealthKit Mac Catalyst-এ উপলব্ধ নয় — macOS-এর জন্য আলাদা বাস্তবায়ন প্রয়োজন।
import HealthKit
let healthStore = HKHealthStore()
let stepType = HKQuantityType
.quantityType(forIdentifier: .stepCount)
let heartRateType = HKQuantityType
.quantityType(forIdentifier: .heartRate)
let typesToRead: Set = [stepType, heartRateType]
HealthKit ডেটা উৎস এবং অ্যাপ্লিকেশনের মধ্যে মধ্যস্থতাকারী হিসাবে কাজ করে, একটি অ্যাসিঙ্ক্রোনাস প্রকাশনা-সাবস্ক্রিপশন মডেল ব্যবহার করে। উৎস অ্যাপ্লিকেশন HKHealthStore-এর মাধ্যমে ডেটা লেখে, এবং সাবস্ক্রাইবকারী অ্যাপ্লিকেশনগুলি HKObserverQuery-এর মাধ্যমে নতুন রেকর্ডের বিজ্ঞপ্তি পায়, যা ব্যাকগ্রাউন্ডে চলে।
ফ্রেমওয়ার্কটি iCloud-এর মাধ্যমে ব্যাকগ্রাউন্ড সিঙ্ক্রোনাইজেশন সমর্থন করে: যদি ব্যবহারকারী সাইন ইন করেন, HealthKit স্বয়ংক্রিয়ভাবে রিয়েল টাইমে সমস্ত Apple ডিভাইসে ডেটা বিতরণ করে। যখন নেটওয়ার্ক নেই, তখন পরিবর্তনগুলি স্থানীয়ভাবে বাফার করা হয় এবং ডেটা ক্ষতি ছাড়াই সংযোগ পুনরুদ্ধারের পরে সিঙ্ক্রোনাইজ হয়।
Apple-এর মতে, iPhone এবং Apple Watch-এর মধ্যে সিঙ্ক্রোনাইজেশন বিলম্ব কার্যকলাপ ডেটার জন্য 30 সেকেন্ডের কম। অন্যান্য টাইপের জন্য — ঘুম, পুষ্টি, ল্যাব ফলাফল — ব্যাটারি বাঁচাতে 15 মিনিট পর্যন্ত ব্যবধানে সময়সূচী অনুসারে সিঙ্ক্রোনাইজেশন ঘটে।
HKHealthStore কেন্দ্রীয় সিঙ্গলটন যার মাধ্যমে সমস্ত অপারেশন সম্পাদিত হয়: saveObject-এর মাধ্যমে সংরক্ষণ, execute-এর মাধ্যমে পড়া এবং deleteObject-এর মাধ্যমে মুছে ফেলা। প্রতিটি অপারেশন অ্যাসিঙ্ক্রোনাস এবং ক্লোজারের মাধ্যমে ফলাফল ফেরত দেয়, যার জন্য সঠিক ত্রুটি ব্যবস্থাপনা প্রয়োজন।
ক্যোয়ারীগুলি বিভিন্ন প্রকারে বিভক্ত: HKSampleQuery মানদণ্ড অনুসারে রেকর্ড পুনরুদ্ধারের জন্য, HKStatisticsQuery সমষ্টিগত ডেটার জন্য — যোগফল, গড়, ন্যূনতম, সর্বোচ্চ — এবং HKObserverQuery রিয়েল টাইমে পরিবর্তন ট্র্যাক করার জন্য। পর্যায়ক্রমিক ব্যাকগ্রাউন্ড আপডেটের জন্য, HKHeartbeatSeriesQuery ব্যবহার করা হয়।
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 ইন্টিগ্রেশন শুরু হয় Xcode-এ HealthKit ক্যাপাবিলিটি সক্ষম করার এবং প্রকল্পে entitlement যোগ করার মাধ্যমে। এর পরে, অ্যাপ্লিকেশনটি requestAuthorization কলের মাধ্যমে নির্দিষ্ট ডেটা টাইপ অ্যাক্সেসের অনুমতি অনুরোধ করে। গুরুত্বপূর্ণ: HealthKit সিমুলেটরে উপলব্ধ নয় এবং এর জন্য iOS সহ একটি শারীরিক ডিভাইস প্রয়োজন।
ইন্টিগ্রেশন প্রক্রিয়ায় তিনটি ধাপ অন্তর্ভুক্ত: ডেটা টাইপ সংজ্ঞায়িত করা, অনুমোদনের অনুরোধ করা এবং পড়া এবং লেখার অপারেশন সম্পাদন করা। প্রতিটি ধাপ অ্যাসিঙ্ক্রোনাস এবং ত্রুটিগুলি পরিচালনা করতে হবে — ব্যবহারকারী টগল সহ সিস্টেম ডায়ালগে যে কোনও ডেটা টাইপের অ্যাক্সেস অস্বীকার করতে পারেন।
Apple গবেষণা অনুসারে, HealthKit ইন্টিগ্রেশন সহ অ্যাপ্লিকেশনগুলি 40% বেশি ব্যবহারকারীর ব্যস্ততা দেখায়। সাফল্যের মূল কারণ অনুমোদনের অনুরোধ বিবরণে ব্যাখ্যা করা যে অ্যাপটির কেন নির্দিষ্ট স্বাস্থ্য ডেটা প্রয়োজন।
অনুমোদনের অনুরোধ প্রথম লঞ্চে একবার করা হয়। অ্যাপ্লিকেশনটি দুটি সেট টাইপ নির্দিষ্ট করে — পড়া এবং লেখার জন্য। ব্যবহারকারী প্রতিটি ডেটা টাইপের জন্য টগল সহ একটি সিস্টেম ডায়ালগ দেখেন এবং অপ্রয়োজনীয় বিভাগগুলি অস্বীকার করে নির্বাচনীভাবে অ্যাক্সেস প্রদান করতে পারেন।
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 একটি বহু-স্তরীয় নিরাপত্তা মডেল প্রয়োগ করে যাতে হার্ডওয়্যার এনক্রিপশন, অ্যাপ্লিকেশন স্যান্ডবক্সিং এবং দানাদার অনুমতি অন্তর্ভুক্ত। সমস্ত স্বাস্থ্য ডেটা ডিভাইসে এনক্রিপ্টেড অবস্থায় সংরক্ষিত থাকে এবং ব্যবহারকারীর পৃথক সম্মতি ছাড়া iCloud-এ প্রেরণ করা হয় না, যা একবার অনুরোধ করা হয়।
একটি মূল বৈশিষ্ট্য হল Intent মেকানিজম: অ্যাপ্লিকেশনের ডেটাতে ধ্রুবক ব্যাকগ্রাউন্ড অ্যাক্সেস নেই। প্রতিটি পড়া বা লেখার অনুরোধ অপারেটিং সিস্টেম দ্বারা যাচাই করা হয় এবং ব্যবহারকারী অ্যাপ পুনরায় ইনস্টল না করেই সেটিংস — গোপনীয়তা — স্বাস্থ্যের মাধ্যমে যেকোনো সময় অনুমতি প্রত্যাহার করতে পারেন।
Apple App Store Review Guidelines-এ HealthKit-এর ব্যবহার কঠোরভাবে নিয়ন্ত্রণ করে। অ্যাপ্লিকেশন স্পষ্ট সম্মতি ছাড়া HealthKit ডেটা তৃতীয় পক্ষের কাছে স্থানান্তর করতে পারে না, বিজ্ঞাপন বা টার্গেটিংয়ের জন্য এটি ব্যবহার করতে পারে না এবং ঘোষিত কার্যকারিতার জন্য প্রয়োজনীয়তার চেয়ে বেশি সময় ধরে সংরক্ষণ করতে পারে না।
HealthKit-এর বেশ কয়েকটি সীমা রয়েছে: ডিভাইসে সর্বোচ্চ ডেটাবেস আকার 1 GB, একক ক্যোয়ারীতে রেকর্ডের সীমা 1000 এবং অভিন্ন ডেটা টাইপের মধ্যে ন্যূনতম ব্যবধান 1 সেকেন্ড। ফ্রেমওয়ার্ক ব্যাকগ্রাউন্ড আপডেটও সীমিত করে — প্রতিদিন 60টির বেশি HKObserverQuery ট্রিগার নয়।
এই সীমাগুলি কর্মক্ষমতা দ্বারা অফসেট হয়: 1000 রেকর্ড পড়া গড়ে 50–100 মিলিসেকেন্ড সময় নেয় এবং একটি রেকর্ড লিখতে 10 মিলিসেকেন্ডের কম সময় লাগে। বড় ডেটা ভলিউমের জন্য, পৃথক রেকর্ড আনার পরিবর্তে পূর্ব-একত্রীকরণ সহ HKStatisticsCollectionQuery ব্যবহার করার সুপারিশ করা হয়। HealthKit ক্যোয়ারীগুলি অ্যাসিঙ্ক্রোনাসভাবে প্রক্রিয়া করে — অ্যাপ্লিকেশনটি HKHealthStore থেকে ডেটার অপেক্ষায় ব্লক হয় না।
সচরাচর জিজ্ঞাস্য
HealthKit iOS 8 এবং তার নতুন সমস্ত ডিভাইসে সমর্থিত, যার মধ্যে iPhone, iPad এবং iPod touch অন্তর্ভুক্ত। Apple Watch যুক্ত iPhone-এর মাধ্যমে স্বয়ংক্রিয়ভাবে ডেটা প্রেরণ করে। তৃতীয়-পক্ষের ডিভাইসগুলি — ফিটনেস ব্যান্ড, দাঁড়িপাল্লা, রক্তচাপ মনিটর — সংশ্লিষ্ট অ্যাপ্লিকেশন থাকলে HealthKit API-এর মাধ্যমে ডেটা লিখতে পারে।
হ্যাঁ, স্বাস্থ্য অ্যাপ “স্বাস্থ্য ডেটা এক্সপোর্ট করুন” ফাংশনের মাধ্যমে সমস্ত ডেটা XML ফর্ম্যাটে এক্সপোর্ট করার অনুমতি দেয়। ডেভেলপাররা HKSampleQuery-এর মাধ্যমে যে কোনও অনুমোদিত টাইপ প্রোগ্রামেটিকভাবে পড়তে পারে এবং নিজস্ব ফর্ম্যাটে এক্সপোর্ট করতে পারে। স্পষ্ট ব্যবহারকারী সম্মতি ছাড়া স্বাস্থ্য ডেটা তৃতীয় পক্ষের সার্ভারে স্থানান্তর করা যাবে না।
ব্যবহারকারী স্বাস্থ্য অ্যাপ বা উৎস অ্যাপ্লিকেশনের মাধ্যমে ডেটা মুছে ফেলতে পারেন যা এটি রেকর্ড করেছে। মুছে ফেলার পরে, ডেটা পুনরুদ্ধার করা যায় না — HealthKit-এ কোনও ট্র্যাশ বিন নেই। মুছে ফেলার অপারেশন অপরিবর্তনীয়, তাই deleteObject সম্পাদনের আগে অ্যাপ্লিকেশনগুলিকে নিশ্চিতকরণ অনুরোধ করার সুপারিশ করা হয়।
HealthKit ব্যবহারকারীর স্বাস্থ্য ডেটা সংরক্ষণ এবং ভাগ করার জন্য ডিজাইন করা হয়েছে, যখন ResearchKit চিকিৎসা গবেষণা পরিচালনার জন্য একটি ফ্রেমওয়ার্ক। ResearchKit HealthKit-কে তার ডেটা উৎসগুলির একটি হিসাবে ব্যবহার করে, তবে গবেষণা ডেটা সংগ্রহের জন্য অবহিত সম্মতি, প্রশ্নাবলী এবং সক্রিয় কাজের মডিউল যুক্ত করে।
হ্যাঁ, HealthKit ব্যবহার করে এমন অ্যাপ্লিকেশনগুলিকে অবশ্যই App Store Review Guidelines, বিভাগ 5.1.1 — চিকিৎসা এবং স্বাস্থ্য ডেটা মেনে চলতে হবে। অ্যাপ্লিকেশনে ডেটা ব্যবহারের স্পষ্ট বিবরণ, একটি গোপনীয়তা নীতি, ডেটার বিজ্ঞাপন ব্যবহারে নিষেধাজ্ঞা এবং নেটওয়ার্ক ট্রান্সমিশনের সময় এনক্রিপশন প্রয়োজন।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন