読者です 読者をやめる 読者になる 読者になる

Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #251】加速度センサーを使うサンプル

加速度センサーで値を取得するのはそんなに難しくなかった。

加速度センサーで値を取得するためにやること

  1. CoreMotionライブラリを追加
  2. CMMotionManagerプロパティの追加
  3. CMMotionManagerプロパティに加速度センサーを使う設定する
  4. 加速度センサーを開始する

取得したx,y,zが表すこと

Apple イベント処理ガイドより。

f:id:fjswkun:20150830164900p:plain

具体的な実装方法?

  • CoreMotionライブラリを追加
import CoreMotion


- CMMotionManagerプロパティの追加

let motionManager = CMMotionManager()


- CMMotionManagerプロパティに加速度センサーを使う設定する

// 加速度センサーで値を取得する間隔を設定する
motionManager.accelerometerUpdateInterval = 0.1

// 値取得時にしたい処理を作成
let accelerometerHandler:CMAccelerometerHandler = {
        (data: CMAccelerometerData!, error: NSError!) -> Void in
        // 取得した値をコンソールに表示
        println("x: \(data.acceleration.x) y: \(data.acceleration.y) z: \(data.acceleration.z)")
}


- 加速度センサーを開始する

motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue(), withHandler: accelerometerHandler)


サンプル

XcodeでSigle View Applicationでプロジェクトを作成し、 ViewController.swiftを下記のようにする。

import UIKit
/* CoreMotionライブラリを追加 */
import CoreMotion

class ViewController: UIViewController {
    /* CMMotionManagerプロパティの追加 */
    let motionManager = CMMotionManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        /* CMMotionManagerプロパティに加速度センサーを使う設定する */
        // 加速度センサーで値を取得する間隔を設定する
        motionManager.accelerometerUpdateInterval = 0.1

        // 値取得時にしたい処理を作成
        let accelerometerHandler:CMAccelerometerHandler = {
            (data: CMAccelerometerData!, error: NSError!) -> Void in

            // 取得した値をコンソールに表示
            println("x: \(data.acceleration.x) y: \(data.acceleration.y) z: \(data.acceleration.z)")
        }

        /* 加速度センサーを開始する */
        motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue(), withHandler: accelerometerHandler)

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

サンプルを実行

実機で動かすこと。 f:id:fjswkun:20150830165513p:plain


参考情報

  1. iOSアプリ開発未経験の人向け
  2. iOSアプリ開発をはじめたとき最初に買った書籍 【アプリ作成未経験の人向け】 Storyboardを使って画面を作成していく。 手順にしたがって操作していくと、ボタンの作成やWebViewの作成などができる。 アプリって、こんな感じで作るんだというのを体験できる。
    Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

    Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】


・わかりやすくていい、と聞いた本 立ち読みした感じだと【アプリ作成未経験の人向け】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】


②を終えたくらいの知識の方向け ・アプリ開発独学中に2冊めに購入した書籍 プログラミング知識はなくても、若干理解するのに時間がかかる程度で、 読み進められるわかりやすさがある。

iPhoneアプリ開発塾

iPhoneアプリ開発塾


③中級者、上級者向け

詳解 Swift

詳解 Swift