EEYatHo 앱 깎는 이야기

Swift ) 만보기 모듈 CoreMotion - EEYatHo iOS 본문

iOS, Swift/Feature

Swift ) 만보기 모듈 CoreMotion - EEYatHo iOS

EEYatHo 2023. 6. 29. 17:45
반응형

 

권한 작업


  • Info.plist 에 추가
    • Privacy - Motion Usage Description
    • 걸음수 데이터 측정을 위해 데이터 접근 권한이 필요합니다.
  • 안하면 crash남

 

 

코드


  • CoreMotion.CMPedometer.queryPedometerData 활용
  • 3초마다 오늘 00시 ~ 현재시간까지의 걸음수를 query
import CoreMotion

final class CoreMotionService {
    
    static let shared = CoreMotionService()
    
    private var pedoMeter = CMPedometer()
    
    private init() {
        Timer.scheduledTimer(timeInterval: 3.0,
                             target: self,
                             selector: #selector(checkSteps),
                             userInfo: nil,
                             repeats: true)
    }
    
    @objc private func checkSteps() {
        
        let nowDate = Date()
        guard let todayStartDate = Calendar.current.date(bySettingHour: 0, minute: 0, second: 0, of: nowDate) else {
            return
        }
        
        pedoMeter.queryPedometerData(from: todayStartDate, to: nowDate) { data, error in
            if let error {
                print("CoreMotionService.queryPedometerData Error: \(error)")
                return
            }
            
            if let steps = data?.numberOfSteps {
                DispatchQueue.main.async {
                    print("steps = \(steps)")
                }
            }
        }

    }
    
}

 

 

 

 

실행결과


 

 

 

104 에러


Comments