CMPedometerで歩数計を
作ってみよう
株式会社デコレーションカンパニー
徳弘佑衣
自己紹介
• 株式会社デコレーションカンパニー代表
• ここCoEdoのスタッフです
• オリジナルのiPhoneケースが作れるアプリ
「DesigningCase」運営
• iOS開発歴4年
• Swiftは苦手です
アプリ紹介(ぼくの歩数計)
実際の動きを見てください( ✧Д✧)
今日やること
このアプリの中心になっている「歩数
計」の機能をCMPedometerを使って
簡単に実装してみよう
CMPedometerとは?
iOS 8 のCoreMotionに追加された歩数
関連のデータを取得することができる
API !
歩数/走行距離などを計測できたり、過去
に遡ってデータを参照できたりします。
注意:M7/M8(iPhone5s以降のデバイス)
でしか使えない)
M7/M8とは?
M7:iPhone5sから搭載されたチップ!
加速度センサ、ジャイロセンサ、磁気セ
ンサの処理をまとめて行うことで省電力
でこれらのデータを使用することができ
る
M8:iPhone6/6plusに搭載されてるチッ
プ!M7の機能に加え気圧計が追加され
た
❶CoreMotionを追加
フレームワークの追加方法
❷import & 変数作成
import UIKit
import CoreMotion
class ViewController: UIViewController {
//表示するラベル
@IBOutlet weak var label: UILabel!
//CMPedometerの変数を作成
let pedometer = CMPedometer()
❸測定する処理
//カウント用メソッド
func startStepCounting() {
// CMPedometerが利用できるか確認
if CMPedometer.isStepCountingAvailable() {
// 計測開始
pedometer.startPedometerUpdatesFromDate(NSDate(),     
         withHandler: {data, error in          
         dispatch_async(dispatch_get_main_queue(), {
// 歩数
let steps = data.numberOfSteps
// 結果をラベルに出力
self.label.text = "Steps: (steps)"
})
})
}
}
解説
startPedometerUpdatesFromDate:
このメソッドによってリアルタイム計測を行いま
す。
第1引数:NSDate型→どの時点からデータを取得す
るかを指定可能
第2引数:handlerでは
計測データ(pedometerData *pedometerData)
エラー内容(NSError *error)
このhandlerは新しいデータが追加されるとバック
グラウンドスレッドで繰り返し呼ばれるようになっ
ています。
今日のコード
https://github.com/TokuhiroYui/
CountWalk
参考URL:
(1)http://blog.tsumikiinc.com/article/20141111_ios8-cmpedometer.html
(2)http://dev.classmethod.jp/references/ios8-cmpedometer/
ありがとうございました ( ✧Д✧)

CMPedometerで歩数計を 作ってみよう