HealthKit이 관리하는 모든 데이터에 대한 액세스 포인트.

 

HKHealthStore 객체를 사용하여 HealthKit 데이터를 공유하거나 읽기 위한 권한을 요청합니다. 권한을 획득한 후에는 HealthKit 저장소를 사용하여 새로운 샘플을 저장하거나 앱이 저장한 샘플을 관리할 수 있습니다. 또한, HealthKit 저장소를 사용하여 쿼리를 시작하고 중지하고 관리할 수 있습니다.

 

HealthKit에 접근하기

func authorizationStatus(for: HKObjectType) -> HKAuthorizationStatus

: 지정된 데이터 유형을 공유하기 위한 앱의 인증 상태를 반환합니다.

 

enum HKAuthorizationStatus

: 특정 데이터 타입의 인증 상태를 상수로 나타냅니다.

case notDetermined: 사용자는 아직 지정된 데이터 유형에 대한 액세스를 승인하지 않았을 때

case sharingDenied: 사용자가 지정된 데이터 유형에 대한 액세스를 승인을 거부했을 때

case sharingAuthorized: 사용자가 지정된 데이터 유형에 대한 액세스를 승인 했을 때

 

func getRequestStatusForAuthorization(toShare: Set<HKSampleType>, read: Set<HKObjectType>, completion: (HKAuthorizationRequestStatus, (any Error)?) -> Void)

: 앱이 제공된 유형에 대한 권한을 요청하는 경우 시스템이 사용자에게 권한 시트를 제공하는지 여부를 나타냅니다.

 

enum HKAuthorizationRequestStatus

: 앱이 사용자에게 승인을 요청해야 하는지 여부를 나타내는 값.

case unknow: 에러가 발생했기 때문에 권한 요청 상태가 결정되지 않았을 수 있을 때

case shouldRequest: 모든 데이터 타입에 대하여 권한을 수락하지 않았을 때

case unnecessary: 모든 데이터 타입에 대하여 권한을 수락하였을 때 

 

class func isHealthDataAvailable() -> Bool

: 현재 기기에서 HealthKit이 사용 가능한지를 나타내는 Bool값을 반환

 

func supportsHealthRecords( ) -> Bool

: 현재 기기에서 임상 기록을 지원하는지를 나타내는 Bool값을 반환

 

func requestAuthorization(toShare: Set<HKSampleType>?, read: Set<HKObjectType>?, completion: (Bool, (any Error)?) -> Void)

: 특정 데이터 타입을 읽거나 쓸 수 있게끔 권한을 요청

 

func requestAuthorization(toShare: Set<HKSampleType>, read: Set<HKObjectType>)

: 특정 데이터 타입을 읽거나 쓸 수 있게끔 권한을 비동기적으로 요청

 

func requestPerObjectReadAuthorization(for: HKObjectType, predicate: NSPredicate?, completion: (Bool, (any Error)?) -> Void)

: 객체별 인증(예: 비전 처방)이 필요한 데이터 유형을 읽을 수 있는 권한을 비동기적으로 요청합니다.

 

func handleAuthorizationForExtension(completion: (Bool, (any Error)?) -> Void)

: extension로 지정된 데이터 유형을 저장하고 읽을 수 있는 권한을 요청합니다.

 

var authorizationViewControllerPresenter: UIViewController?
: HealthKit 권한 시트를 나타내는 view controller

 

HealthKit 데이터 쿼리하기

func execute(HKQuery)

: 제공된 쿼리를 시작하기

 

func stop(HKQuery)
: 오래 지속되는 쿼리를 멈후기

 

특성 데이터 읽기

func biologicalSex() -> HKBiologicalSexObject

: HealthKit store로부터 성별 데이터 가져오기

 

func bloodType() -> HKBloodTypeObject

: HealthKit store로부터 혈액형 데이터 가져오기

 

func dateOfBirth() -> Date

: HealthKit store로부터 생년월일 데이터 가져오기

 

func dateOfBirthComponents() -> DateComponents

: HealthKit store로부터 생년월일 구성 데이터 가져오기

 

func fitzpatrickSkinType() -> HKFitzpatrickSkinTypeObject

: HealthKit store로부터 피부색 데이터 가져오기

 

func wheelchairUse() -> HKWheelchairUseObject

: HealthKit store로부터 휠체어 사용 유무 데이터 가져오기

 

HealthKit 객체 다루기

func delete(HKObject, withCompletion: (Bool, (any Error)?) -> Void)

: HealthKit으로부터 특정 객체 삭제하기

 

func delete([HKObject], withCompletion: (Bool, (any Error)?) -> Void)

: HealthKit으로부터 특정 객체 삭제하기

 

func deleteObjects(of: HKObjectType, predicate: NSPredicate, withCompletion: (Bool, Int, (any Error)?) -> Void)

: 주어진 타입과 predicate와 일치하는 애플리케이션으로부터 저장된 객체 삭제하기

 

func earliestPermittedSampleDate() -> Date

: 가장 마지막으로 허용된 샘플 삭제하기

 

func save(HKObject, withCompletion: (Bool, (any Error)?) -> Void)

: HealthKit store에서 주어진 저장된 객체 삭제하기

 

func save([HKObject], withCompletion: (Bool, (any Error)?) -> Void)

: HealthKit store에 배열로된 객체들 저장하기

선호하는 유닛에 접근하기

func preferredUnits(for: Set<HKQuantityType>, completion: ([HKQuantityType : HKUnit], (any Error)?) -> Void)

주어진 HQuantityType에 대해 사용자가 선호하는 단위를 반환합니다.

 

static let HKUserPreferencesDidChange: NSNotification.Name

사용자가 선호하는 유닛을 변경할 때마다 관찰자에게 알립니다.

백그라운드 전달 관리하기

func enableBackgroundDelivery(for: HKObjectType, frequency: HKUpdateFrequency, withCompletion: (Bool, (any Error)?) -> Void)

: 백그라운드에서 앱이 실행되는 동안 데이터를 업데이트할 수 있도록 해줍니다.

 

enum HKUpdateFrequency

: HealthKit 데이터의 변경에 대응하여 시스템이 앱을 실행하는 빈도를 결정하는 상수.

 

func disableBackgroundDelivery(for: HKObjectType, withCompletion: (Bool, (any Error)?) -> Void)

: 특정 데이터 타입에 대하여 백그라운드에서 데이터를 업데이트를 못하기 막아줍니다.

 

func disableAllBackgroundDelivery(completion: (Bool, (any Error)?) -> Void)

: 모든 백그라운드 업데이트 알림을 비활성화 합니다.

 

운동 관리하기

func splitTotalEnergy(HKQuantity, start: Date, end: Date, resultsHandler: (HKQuantity?, HKQuantity?, (any Error)?) -> Void)

: 주어진 기간 동안 소모된 총 에너지를 기준으로 연소된 활성 및 휴식 에너지를 계산합니다.

 

func recoverActiveWorkoutSession(completion: (HKWorkoutSession?, (any Error)?) -> Void)

: 활성화된 운동 세션을 복구합니다.

운동 세션 관리하기

var workoutSessionMirroringStartHandler: ((HKWorkoutSession) -> Void)?

: 미러링된 운동 세션을 시작할 때 시스템이 호출하는 블록.

 

func startWatchApp(with: HKWorkoutConfiguration, completion: (Bool, (any Error)?) -> Void)

: 새로운 운동 세션을 만들기 위해 watchOS 앱을 실행하거나 깨웁니다.

 

func pause(HKWorkoutSession)
: workout session을 중지합니다

 

func resumeWorkoutSession(HKWorkoutSession)
: workout session을 재개합니다

견적 관리

func recalibrateEstimates(sampleType: HKSampleType, date: Date, completion: (Bool, (any Error)?) -> Void)

: 지정된 샘플 유형을 계산하는 데 사용되는 예측 알고리즘을 재계정합니다.

이동 모드에 접근하기

func activityMoveMode() -> HKActivityMoveModeObject

: 현재 사용자의 활동 이동 모드를 반환합니다

 

static let HKUserPreferencesDidChange: NSNotification.Name

: 사용자가 선호하는 유닛을 변경할 때마다 관찰자에게 알립니다

 

 

 

'SwiftUI' 카테고리의 다른 글

HKLiveWorkoutBuilder  (0) 2024.03.11
HKWorkoutSession  (0) 2024.03.11
Alamofire  (0) 2024.03.11
Authorizing access to health data  (0) 2024.03.11
HealthKit 을 사용하기 전에 세팅  (0) 2024.03.11
ytw_developer