core-motionlisted
Install: claude install-skill dpearson2699/swift-ios-skills
# CoreMotion
Read device sensor data -- accelerometer, gyroscope, magnetometer, pedometer, and
activity recognition -- on iOS and watchOS. CoreMotion fuses raw sensor inputs into
processed device-motion data and provides pedometer/activity APIs for fitness and
navigation use cases. Targets Swift 6.3 / iOS 26+.
## Contents
- [Setup](#setup)
- [CMMotionManager: Sensor Data](#cmmotionmanager-sensor-data)
- [Processed Device Motion](#processed-device-motion)
- [CMPedometer: Step and Distance Data](#cmpedometer-step-and-distance-data)
- [CMMotionActivityManager: Activity Recognition](#cmmotionactivitymanager-activity-recognition)
- [CMAltimeter: Altitude Data](#cmaltimeter-altitude-data)
- [Update Intervals and Battery](#update-intervals-and-battery)
- [Common Mistakes](#common-mistakes)
- [Review Checklist](#review-checklist)
- [References](#references)
## Setup
### Info.plist
Add `NSMotionUsageDescription` to Info.plist with a user-facing string explaining
why your app needs motion data. Without this key, the app crashes on first access.
```xml
<key>NSMotionUsageDescription</key>
<string>This app uses motion data to track your activity.</string>
```
### Authorization
CoreMotion uses `CMAuthorizationStatus` for pedometer and activity APIs. Sensor
APIs (accelerometer, gyro) do not require explicit authorization but do require
the usage description key.
```swift
import CoreMotion
let status = CMMotionActivityManager.authorizationStatus()
switch status {
case .notDetermin