Ауторизација здравствених података је процес добијања изричите сагласности корисника за читање и писање медицинских и фитнес података путем системских API-ја мобилних платформи. На iOS-у ауторизација је реализована кроз HealthKit са класама HKHealthStore и HKObjectType, а на Android-у — кроз Google Fit API са OAuth 2.0 и FitnessOptions. Према Apple HealthKit Documentation, 2025, здравствени подаци се класификују као категорија посебно поверљивих. Медицинска прецизност и усклађеност са прописима су кључни захтеви при раду са таквим подацима.
Главно
Ауторизација здравствених података је механизам који захтева изричиту и документовану сагласност корисника пре приступа његовим медицинским и фитнес показатељима. За разлику од стандардних дозвола (контакти, календар), здравствени подаци су регулисани додатним правним нормама: HIPAA у САД, GDPR у Европи и 152-ФЗ у Русији.
На iOS-у ауторизација здравља је реализована кроз HealthKit: корисник види екран са списком свих врста података које апликација захтева и може да изабере одређене категорије за одобравање приступа. На Android-у користи се Google Fit API са ауторизацијом путем OAuth 2.0, где се за сваку врсту података захтева посебан опсег.
Према подацима App Annie (2025), апликације за здравље и фитнес су један од најбрже растућих сегмената мобилног тржишта са годишњим растом од 28%. Истовремено, 71% корисника одбија приступ здравственим подацима ако апликација не пружа јасно објашњење сврхе прикупљања.
Кључна разлика ауторизације здравља у односу на друге дозволе — могућност одобравања делимичног приступа. Корисник може дозволити читање корака, али забранити приступ подацима о откуцајима срца или медицинским записима.
HealthKit је Apple-ов framework представљен у iOS 8 који пружа јединствено централизовано складиште здравствених података. Апликације немају директан приступ HealthKit-у — оне захтевају ауторизацију путем HKHealthStore-а, а корисник одлучује које врсте података да обезбеди. Сви подаци су шифровани на уређају и синхронизовани путем iCloud-а са енд-то-енд шифровањем.
Процес ауторизације почиње креирањем инстанце HKHealthStore и позивањем метода requestAuthorization(toShare:read:). Апликација прослеђује два сета врста: за читање (HKObjectType које апликација жели да чита) и за писање (HKSampleType које апликација жели да чува). Систем приказује екран сагласности на којем корисник укључује или искључује сваку врсту појединачно.
Важна карактеристика: HealthKit не показује програмеру које тачно врсте је корисник дозволио на екрану сагласности. Након позива requestAuthorization потребно је појединачно проверити приступ свакој врсти путем HKHealthStore.authorizationStatus(for:). Према WWDC Session 11108 (2024), Apple препоручује проверу статуса ауторизације пре сваке операције читања или писања.
HealthKit подржава стотине врста података подељених у категорије: квантитативне (кораци, пулс, калорије), карактеристике (висина, тежина, датум рођења), клинички записи (алергије, вакцинације, резултати анализа), симптоми и менструални циклус. Свака врста је представљена подкласом HKObjectType: HKQuantityType за нумеричке показатеље и HKCategoryType за категоричке податке.
Од iOS 18, Apple је проширио HealthKit подршком за податке из медицинских установа путем FHIR (Fast Healthcare Interoperability Resources). Апликације могу захтевати приступ структурираним медицинским записима ако је корисник повезао своју болницу или клинику са Health апликацијом.
Google Fit је платформа за рад са фитнес подацима на Android-у која користи ауторизацију путем OAuth 2.0. За разлику од HealthKit-а, Google Fit није уграђен у оперативни систем на системском нивоу — то је засебна услуга Google Play Services која захтева повезивање путем Google Play Console и креирање OAuth 2.0 акредитива.
За приступ Google Fit-у, апликација мора да региструје OAuth 2.0 клијент ID у Google Cloud Console. Ауторизација се захтева путем GoogleSignInAccount и GoogleSignIn.requestPermissions(). Корисник види стандардни екран сагласности Google-а са навођењем захтеваних опсега: fitness.activity.read, fitness.body.read, fitness.nutrition.write и друге.
Google Fit раздваја дозволе за читање и писање за сваку врсту података. Апликација може захтевати приступ читању броја корака без захтевања права за писање. Од Google Fit API v2, сви захтеви за ауторизацију морају укључивати опис сврхе коришћења података — без тога захтев се одбија од стране Google модерације.
Класа 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.
У Swift-у, захтев за ауторизацију HealthKit-а се извршава путем HKHealthStore-а са навођењем врста за читање и писање. Пример демонстрира захтев за приступ подацима о корацима и пулсу.
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("Greшка ауторизације HealthKit-а: \(error?.localizedDescription ?? "неизвестная")")
}
}
На Android-у, ауторизација Google Fit-а се извршава путем GoogleSignIn и FitnessOptions. Пример демонстрира захтев за приступ подацима о корацима и калоријама.
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 (Health Insurance Portability and Accountability Act), који поставља строге захтеве за чување, пренос и обраду медицинских информација. Апликације које раде са HealthKit-ом могу бити у складу са HIPAA-ом ако се подаци преносе на сервер у шифрованом облику и приступ им је ограничен.
У Европској унији, здравствени подаци се сматрају посебном категоријом личних података према GDPR-у (члан 9). Обрада таквих података захтева изричиту сагласност корисника и, у већини случајева, спровођење процене утицаја на заштиту података. Кршење захтева GDPR-а може резултирати казнама до 20 милиона евра или 4% годишњег промета компаније.
У Русији прикупљање здравствених података регулисано је 152-ФЗ „О личним подацима“. Од 2025. године, све апликације које обрађују медицинске податке грађана Руске Федерације морају користити сертификована средства за шифровање и чувати податке на серверима који се налазе на територији Руске Федерације, у складу са захтевима Роскомнадзора.
Препорука: пре објављивања апликације која ради са здравственим подацима, консултујте се са правним одељењем ради провере усклађености са локалним прописима. Apple и Google задржавају право да одбију апликацију ако њена политика приватности не испуњава захтеве.
Често постављана питања
HealthKit — уграђени iOS framework са локалним шифрованим складиштем здравствених података. Google Fit — облачна услуга заснована на Google Play Services, која користи OAuth 2.0 за ауторизацију. HealthKit ради офлајн, Google Fit захтева интернет везу за синхронизацију.
Да, на обе платформе. На iOS-у корисник бира одређене врсте података (кораци, пулс, сан) на екрану сагласности HealthKit-а. На Android-у корисник види листу опсега Google Fit-а и може опозвати појединачне дозволе путем подешавања Google налога.
HKHealthStore — централна класа HealthKit framework-а на iOS-у. Управља ауторизацијом, читањем и писањем свих здравствених података. Апликација не може директно приступити складишту HealthKit-а — све операције пролазе кроз HKHealthStore, што гарантује јединствени интерфејс приступа и поштовање права приступа корисника.
Корисник може опозвати приступ путем Google Подешавања — Управљање налогом — Безбедност — Апликације трећих страна са приступом. Изаберите апликацију и кликните „Уклони приступ“. Такође се може опозвати приступ путем Google Play Console: Повезане услуге — Google Fit — Управљање апликацијама.
Ако апликација обрађује здравствене податке корисника у САД и прослеђује их на сервер, усклађеност са HIPAA је обавезна. Ако сви подаци остају локално на уређају и не преносе се трећим странама, апликација можда не захтева усклађеност са HIPAA-ом, али Apple препоручује праћење најбољих безбедносних пракси без обзира на јурисдикцију.
Закључак
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође