GameKitを使ったBluetoothプログラミング
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

GameKitを使ったBluetoothプログラミング

on

  • 6,646 views

 

Statistics

Views

Total Views
6,646
Views on SlideShare
6,636
Embed Views
10

Actions

Likes
6
Downloads
22
Comments
0

2 Embeds 10

http://ec2-54-248-240-57.ap-northeast-1.compute.amazonaws.com 9
https://si0.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

GameKitを使ったBluetoothプログラミング Presentation Transcript

  • 1. GameKitを使った 楽しい Bluetoothプログラミング @taiko19xx on SWWDC 2012/7/2112年7月23日月曜日
  • 2. 自己紹介 木村 俊彦(@taiko19xx) Webデザイン系学校の学生 就職先探してます☆ ぶろぐ http://tnfront.net/12年7月23日月曜日
  • 3. 自己紹介 iPhone開発歴 2年ぐらい 自称ゆるゆる開発者 アプリ BTGPS GPS2Photo(New!)12年7月23日月曜日
  • 4. 今日は入門編です12年7月23日月曜日
  • 5. Bluetoothとは おなじみの近距離無線通信技術 iPhone・iPadは全世代、Touchは第二世代から 省電力 バージョンやプロファイルが様々 今回は気にしません12年7月23日月曜日
  • 6. iOSのBluetooth通信 GameKitを使った通信 主に使われるフレームワーク 今のところこれしかない? CoreBluetooth(Bluetooth 4.0搭載機のみ)12年7月23日月曜日
  • 7. GameKitとは “ゲーム向け”のフレームワーク GameCenter(iOS 4.1∼) Peer-to-Peer Connectivity(iPhoneOS 3.0∼) In-Game Voice(同上) 今回はPeer-to-Peer Connectivityのお話12年7月23日月曜日
  • 8. Part1.検索と接続12年7月23日月曜日
  • 9. 検索から接続確立まで GKPeerPickerControllerを使う 検索から接続までやってくれるので楽 一対一の接続に限る GKPeerPickerControllerを使わない 検索や接続を自前で実装する必要がある 一対多や”すれちがい通信”ができるようになる 今回はGKPeerPickerController使います12年7月23日月曜日
  • 10. GKPeerPickerController UIImagePickerControllerとそっくりです12年7月23日月曜日
  • 11. connectionTypesMask GKPeerPickerConnectionTypeNearby(Bluetooth)と GKPeerPickerConnectionTypeOnline(WiFi)がある TypeOnlineは接続処理を自前で実装する必要があ る TypeOnlineのみの指定はできず、TypeNearbyと セットです12年7月23日月曜日
  • 12. show こんな画面が出てきて探索が始まります 見つかると一覧が表示されます12年7月23日月曜日
  • 13. show 選択すると、選択された側で許可するかを聞かれ ます12年7月23日月曜日
  • 14. 許可orキャンセル後 許可すると peerPickerController:didConnectPeer:toSession: キャンセルするとpeerPickerControllerDidCancel: それぞれGKPeerPickerControllerDelegateのメソッ ドが呼び出されます12年7月23日月曜日
  • 15. GKPeerPickerController Delegate 実装12年7月23日月曜日
  • 16. peerPickerController:didConnectPeer:t oSession: currentSession(GKSession)は接続中のセッション setDataReceiveHandler:withContextを書かないと 受信時に何も呼ばれません12年7月23日月曜日
  • 17. peerPickerControllerDidCancel: 最低限、pickerを解放するだけ dismissは自動で実行されます12年7月23日月曜日
  • 18. Part2.データ送受信12年7月23日月曜日
  • 19. 送受信まで 送信 GKSessionの sendDataToAllPeers:withDataMode:error:を呼び 出す 受信 receiveData:fromPeer:inSession:context:が呼び 出される setDataReceiveHandler:withContextを書き忘れ ていると呼び出されません12年7月23日月曜日
  • 20. sendDataToAllPeers:withDataMode:err or NSDataにして送ります sendData:toPeers:withDataMode:errorを使えば特 定の接続先に送信できます12年7月23日月曜日
  • 21. withDataMode(Data Transmission Mode) GKSendDataReliable 大容量データなど確実に送信する必要がある場 合に使う GKSendDataUnreliable すぐに到着する必要がある場合に使いますが、 再送信されません あまり気にせずReliableでいいと思います12年7月23日月曜日
  • 22. receiveData:fromPeer:inSession:contex t もちろんNSDataで入ってきます このメソッド内で非常に長い処理をするべきでは ない(らしい)12年7月23日月曜日
  • 23. 送受信はこれだけ!12年7月23日月曜日
  • 24. 切断 disconnectFromAllPeers すべての接続先から切断 disconnectPeerFromAllPeers:で特定の接続先から 切断できます12年7月23日月曜日
  • 25. Part3.GKSessionDelegate12年7月23日月曜日
  • 26. GKSessionDelegate session:peer:didChangeState session:didReceiveConnectionRequestFromPeer session:connectionWithPeerFailed:withError: session:didFailWithError 接続状態の判定やリクエストの許可不許可、エ ラー処理ができます12年7月23日月曜日
  • 27. session:peer:didChangeState: 繋がったり切れたりと、状態が変化すると呼び出 されます12年7月23日月曜日
  • 28. GKPeerConnectionState GKPeerStateAvailable(接続が使用可能) GKPeerStateUnavailable(接続が使用不可能) GKPeerStateConnected(接続した) GKPeerStateDisconnected(切断した) GKPeerStateConnecting(接続中) それぞれ変化した時に呼ばれます12年7月23日月曜日
  • 29. session:didReceiveConnectionRequest FromPeer: 接続リクエストがあった時に呼ばれます 許可するならGKSessionの acceptConnectionFromPeer:error:を、許可しない ならdenyConnectionFromPeer:を呼び出します12年7月23日月曜日
  • 30. connectionErrorFailed&didFailWithError 接続先との通信に失敗した時など、接続・通信エ ラーが発生すると呼ばれます12年7月23日月曜日
  • 31. まとめ 結構簡単にできたと思います(当社比) 応用すれば何でも送信できると思います 是非チャレンジしてみてください!12年7月23日月曜日
  • 32. 参考資料 GameKit プログラミングガイド https://developer.apple.com/jp/devcenter/ios/library/documentation/ GameKit_Guide.pdf 【iOS4】初めてのBluetoothプログラミング - おいしいCocoaの飲み方 http://ip7.biz/wordpress/?p=260 Cocoaの日々: [iOS] GameKit - Bluetoothを使った iOSデバイス間の通信 http://cocoadays.blogspot.jp/2010/12/gamekit-bluetooth-ios.html iPhone Bluetoothプログラミング / DevX - インターネットコム コラム http://japan.internet.com/column/developer/20100216/26.html12年7月23日月曜日