cmpedometerで歩数計を 作ってみよう
TRANSCRIPT
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/
ありがとうございました∩( ✧Д✧)∩