How To Save And Get Data from HealthKit in Swift 3.0?
Apple providing the healthKit for storing, managing , reading and sharing health data. HealthKit enables developer to read and write health data to a database managed by operating system.
This tutorial, We are providing the details of HealthKit configuration , Authorization , Save health data and Write health data.
Configuration :
Step 1 : Create a project with Bundle Identifier com.iosDevCenter.Health. Add this bundle identifier in the developer account and enable the healthKit for the AppId.
Step 2 : Go to the Xcode, Select the project and go to the Capability section enable the healthKit.
Step 3: You have also permission for HealthKit Share and Update data, So have to adding permission in info.plist file. for more information : info.Plist
Authorization and Code :
To read or Write data on healthKit have to take permission for it. Here we take permission to read data Height and bodyMass, and Write data permission activeEnergyBurned, Height , DietaryProtein , DietaryFatTotal.
Step 1: Import the healthKit in the file.
Save Health Data :
Save Protein :
Save Height :
Read Health Data :
Read Height Data :
Read Weight Data :
Demo HealthKit :
Thanks.
This tutorial, We are providing the details of HealthKit configuration , Authorization , Save health data and Write health data.
Configuration :
Step 1 : Create a project with Bundle Identifier com.iosDevCenter.Health. Add this bundle identifier in the developer account and enable the healthKit for the AppId.
Step 2 : Go to the Xcode, Select the project and go to the Capability section enable the healthKit.
Step 3: You have also permission for HealthKit Share and Update data, So have to adding permission in info.plist file. for more information : info.Plist
Authorization and Code :
To read or Write data on healthKit have to take permission for it. Here we take permission to read data Height and bodyMass, and Write data permission activeEnergyBurned, Height , DietaryProtein , DietaryFatTotal.
Step 1: Import the healthKit in the file.
import HealthKit
Step 2 : Create the instance of the healthStore,let healthkitStore = HKHealthStore()
Step 3 : Create the function to read and write data from healthKit and call the function in ViewDidLoad.func getHealthKitPermission() {
let healthkitTypesToRead = NSSet(array: [
HKObjectType.categoryType(forIdentifier: HKCategoryTypeIdentifier.sexualActivity) ?? "",
HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.height) ?? "",
HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bodyMass) ?? "",
])
let healthkitTypesToWrite = NSSet(array: [
// Here we are only requesting access to write for the amount of Energy Burned.
HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.activeEnergyBurned) ?? "",
HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.height) ?? "",
HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.dietaryProtein) ?? "",
HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.dietaryCarbohydrates) ?? "",
HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.dietaryFatTotal) ?? "",
])
healthkitStore.requestAuthorization(toShare: healthkitTypesToWrite as? Set, read: healthkitTypesToRead as? Set) { (success, error) in
if success {
print("Permission accept.")
self.saveProtin()
self.saveHeight()
self.readHeight()
self.readWeight()
} else {
if error != nil {
print(error ?? "")
}
print("Permission denied.")
}
}
}
Save Health Data :
Save Protein :
func saveProtin(){
if let type = HKSampleType.quantityType(forIdentifier: HKQuantityTypeIdentifier.dietaryProtein) {
let date = Date()
let quantity = HKQuantity(unit: HKUnit.gram(), doubleValue: 50.0)
let sample = HKQuantitySample(type: type, quantity: quantity, start: date, end: date)
self.healthkitStore.save(sample, withCompletion: { (success, error) in
print("Saved \(success), error \(error)")
})
}
}
Save Height :
func saveHeight() {
if let type = HKSampleType.quantityType(forIdentifier: HKQuantityTypeIdentifier.height) {
let date = Date()
let quantity = HKQuantity(unit: HKUnit.inch(), doubleValue: 100.0)
let sample = HKQuantitySample(type: type, quantity: quantity, start: date, end: date)
self.healthkitStore.save(sample, withCompletion: { (success, error) in
print("Saved \(success), error \(error)")
})
}
}
Read Health Data :
Read Height Data :
func readHeight(){
let heightType = HKSampleType.quantityType(forIdentifier: HKQuantityTypeIdentifier.height)!
let query = HKSampleQuery(sampleType: heightType, predicate: nil, limit: 1, sortDescriptors: nil) { (query, results, error) in
if let result = results?.first as? HKQuantitySample{
print("Height => \(result.quantity)")
}else{
print("OOPS didnt get height \nResults => \(results), error => \(error)")
}
}
self.healthkitStore.execute(query)
}
Read Weight Data :
func readWeight(){
let bodyMass = HKSampleType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bodyMass)!
let query = HKSampleQuery(sampleType: bodyMass, predicate: nil, limit: 1, sortDescriptors: nil) { (query, results, error) in
if let result = results?.first as? HKQuantitySample{
print("bodyMass => \(result.quantity)")
}else{
print("OOPS didnt get height \nResults => \(results), error => \(error)")
}
}
self.healthkitStore.execute(query)
}
Demo HealthKit :
Thanks.
How To Save And Get Data from HealthKit in Swift 3.0?
Reviewed by KIRIT MODI
on
00:15:00
Rating:
No comments: