Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
シェイクを検知して学ぼう!
モーションイベント
Swiftビギナーズ倶楽部 第5回
写真素材ぱくたそ
http://www.pakutaso.com
• WordPressもくもく倶楽部@Co-Edoもやってます。
• Ruby / Ruby on Rails ビギナーズ倶楽部@Co-Edoやってます( ́ ▽ ` )ノ
• スマホアプリ開発初心者な、アプリケーションエンジニア(Rails ...
1) シェイクをカウントしてみよう!
Today's Agenda
2)モーションイベントを学ぼう!
3)モーションイベントの実装方法!
1-1) シェイクをカウントしてみよう!
Let s DEMO!
2-1)モーションイベントを学ぼう!
モーションイベントとは!
デバイスを振ったり、傾けたりすることで、
モーションイベントが発生します。
デバイスのハードウェア
加速度センサー ジャイロスコープ
イベントを検知してくれるのは
CoreMoti...
2-2)モーションイベントを学ぼう!
https://developer.apple.com/jp/documentation/EventHandlingiPhoneOS.pdf
引用資料:イベント処理ガイド(iOS用)
加速度センサー
・x、...
2-3)モーションイベントを学ぼう!
ジャイロスコープ
・3つの空間軸の周りの回転速度を測定します。
・ジャイロスコープが搭載されているデバイス。
https://developer.apple.com/jp/documentation/Eve...
2-4)モーションイベントを学ぼう!
データにアクセスする方法
1)デバイスの大まかな向きが分かればよく、
  向きベクトルは必要ないという場合
=> UIDeviceを使ってデバイスの向きを取得します。
2)デバイスを振る動きに応答したい場合...
3-1)モーションイベントの実装方法!
モーション処理メソッドは、3種類あります。
・motionBegan:withEvent
・motionEnded:withEvent
・motionCancelled:withEvent
motionB...
@IBOutlet weak var countLabel: UILabel!
var cnt = 0
override func motionBegan(motion: UIEventSubtype, withEvent event: UIE...
3-3)モーションイベントの実装方法!
シュミレータでの
確認方法!
iOS Simulator > Hardware > Shake Gesture
Or
control + command + z
ま と め
モーションイベントデータにアクセスする方法
1)デバイスの大まかな向きを取得する場合は、
  UIDeviceを利用する。
2)シェイク時には、UIEventを利用する。
3)UIDeviceやUIEventを使って必要な情報が得ら...
わからないー!
だれか教えてー♪
Swiftビギナーズ倶楽部は
わからないことは周りの人に聞いて、気軽に教え合って、
皆の疑問を1つでも解決して、楽しんで開発していきましょう。
Let's study together!
Thank you :)
Prochain SlideShare
Chargement dans…5
×

シェイクを検知して学ぼう、モーションイベント!

1 396 vues

Publié le

「Swiftビギナーズ勉強会 第五回」で発表したスライドです。
シェイクをカウントするデモアプリを通して、モーションイベントの仕組みを説明しています。

Publié dans : Technologie
  • Soyez le premier à commenter

シェイクを検知して学ぼう、モーションイベント!

  1. 1. シェイクを検知して学ぼう! モーションイベント Swiftビギナーズ倶楽部 第5回 写真素材ぱくたそ http://www.pakutaso.com
  2. 2. • WordPressもくもく倶楽部@Co-Edoもやってます。 • Ruby / Ruby on Rails ビギナーズ倶楽部@Co-Edoやってます( ́ ▽ ` )ノ • スマホアプリ開発初心者な、アプリケーションエンジニア(Rails / LAMP / Java / Oracle) Self-Intoroduction http://ror-beginners.doorkeeper.jp/ http://wp-moku.doorkeeper.jp/
  3. 3. 1) シェイクをカウントしてみよう! Today's Agenda 2)モーションイベントを学ぼう! 3)モーションイベントの実装方法!
  4. 4. 1-1) シェイクをカウントしてみよう! Let s DEMO!
  5. 5. 2-1)モーションイベントを学ぼう! モーションイベントとは! デバイスを振ったり、傾けたりすることで、 モーションイベントが発生します。 デバイスのハードウェア 加速度センサー ジャイロスコープ イベントを検知してくれるのは CoreMotionフレームワーク
  6. 6. 2-2)モーションイベントを学ぼう! https://developer.apple.com/jp/documentation/EventHandlingiPhoneOS.pdf 引用資料:イベント処理ガイド(iOS用) 加速度センサー ・x、y、z軸に沿った速度の変化を測定します。 ・加速度データを受け取って処理するためには、  CMMotionManagerクラスを利用します。 ・startAccelerometerUpdates(プル型)  ーアプリケーションは定期的にこの値を取得します。 ・startAccelerometerUpdatesToQueue:withHandler(プッシュ型)  ー加速度センサーのデータ更新に応じて実行されます。 いずれかのメソッドを利用。
  7. 7. 2-3)モーションイベントを学ぼう! ジャイロスコープ ・3つの空間軸の周りの回転速度を測定します。 ・ジャイロスコープが搭載されているデバイス。 https://developer.apple.com/jp/documentation/EventHandlingiPhoneOS.pdf 引用資料:イベント処理ガイド(iOS用) ・startGyroUpdates(プル型)  ーアプリケーションは定期的にこの値を取得します。 ・startGyroUpdatesToQueue:withHandler(プッシュ型)  ージャイロスコープのデータ更新に応じて実行されます。 ー iPhone 4以降/iPod touch第4世代/iPad 2以降 いずれかのメソッドを利用。
  8. 8. 2-4)モーションイベントを学ぼう! データにアクセスする方法 1)デバイスの大まかな向きが分かればよく、   向きベクトルは必要ないという場合 => UIDeviceを使ってデバイスの向きを取得します。 2)デバイスを振る動きに応答したい場合 => UIEventオブジェクトから必要な情報を取得します。 3)UIDeviceやUIEventを使って 必要な情報が得られない場合 => Core Motionフレームワークを利用して、加速度センサー、 ジャイロスコープ、デバイスモーションの各クラスにアクセスします。
  9. 9. 3-1)モーションイベントの実装方法! モーション処理メソッドは、3種類あります。 ・motionBegan:withEvent ・motionEnded:withEvent ・motionCancelled:withEvent motionBegan、motionEndedのいずれか、 あるいは両方を実装する必要があります。 motionCancelledメソッドも実装して、iOSが モーションイベントをキャンセルした場合に、 対処できるようにしましょう。
  10. 10. @IBOutlet weak var countLabel: UILabel! var cnt = 0 override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent) { if event.type == UIEventType.Motion && event.subtype == UIEventSubtype.MotionShake { // シェイク動作始まり時の処理 // 今回は特に処理を入れていません。 } } override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) { if event.type == UIEventType.Motion && event.subtype == UIEventSubtype.MotionShake { // シェイク動作終了時の処理 cnt++ countLabel.text = cnt.description } } override func motionCancelled(motion: UIEventSubtype, withEvent event: UIEvent) { // モーションイベントをキャンセルしたとき対処 // イベントがキャンセルされるのは、シェイクモーションが割り込まれたとき、 // あるいは(シェイクがあまりに長く続くなどのため)モーションが有効でないとiOSが判断したときです。 countLabel.text = "NG" } 3-2)モーションイベントの実装方法! DEMOアプリのコード
  11. 11. 3-3)モーションイベントの実装方法! シュミレータでの 確認方法! iOS Simulator > Hardware > Shake Gesture Or control + command + z
  12. 12. ま と め モーションイベントデータにアクセスする方法 1)デバイスの大まかな向きを取得する場合は、   UIDeviceを利用する。 2)シェイク時には、UIEventを利用する。 3)UIDeviceやUIEventを使って必要な情報が得られない   場合は、Core Motionフレームワークを利用する。
  13. 13. わからないー! だれか教えてー♪ Swiftビギナーズ倶楽部は わからないことは周りの人に聞いて、気軽に教え合って、 皆の疑問を1つでも解決して、楽しんで開発していきましょう。
  14. 14. Let's study together! Thank you :)

×