How to use Core Motion in iOS using Swift

Users generate motion events when they move, shake, or tilt the device. These motion events are detected by the device hardware, specifically, the accelerometer and the gyroscope. The Core Motion framework lets your application receive motion data from device hardware and process that data.

To get started import the Core Motion framework like this:

import CoreMotion

Now create an instance of CMMotionManager object. The app can use it to receive four types of motion: raw accelerometer data, raw gyroscope data, raw magnetometer data, and processed device-motion data (which includes accelerometer, rotation-rate, and attitude measurements).

let motionManager = CMMotionManager()

For starting accelerometer updates you need to call the next method:

func startAccelerometerUpdates()

Finally, read the accelerometer data as often as you want.

if let accelerometerData = motionManager.accelerometerData {
}

You can change accelerometerUpdateInterval, the interval, in seconds, for providing accelerometer updates to the block handler.

The same story for Gyroscope, Magnetometer and Device motion.

func startGyroUpdates()
func startMagnetometerUpdates()
func startDeviceMotionUpdates()

The source code of example using Core Motion can found here.

Happy coding!

Show your support

Clapping shows how much you appreciated Maxim Bilan’s story.