SlideShare a Scribd company logo
iOS7アプリ同士の近距離通信どれがいい?
今日の話はこっち

iBeacon ?

CoreBluetooth ?
MultipeerConnectivity ?
近距離通信=ネット介さず
•

直接データ転送 (AirDrop)

•

リモコン (iTunes Remote、Keynote Remote)

•

そばにいる事の検出 (AirDrop、iBeacon)

•

すれ違い通信 (Nintendo DS)

•

ゲーム

 
iOS7
•

CoreBluetooth

       BLE (Bluetooth Low Energy)

•

iBeacon

       これもBLEベース

•

MultipeerConnectivity

       Bluetooth or WiFi

       N対NのPeer-to-Peer
•

BLE = Bluetooth Low Energy
•

バッテリー食わず

 (ボタン電池が2年持つほどの仕様)

•

昔ながらのBluetoothとは別物、と捉えとけ

 (電池食いやライセンス料の先入観排除)
どんなモノ作りたいの?
•

そばにいるよ検出/距離算出

•

文字列ちょっと送る

•

Background通信(すれ違い通信)

•

Androidとも繋ぐ

•

ユーザ間の頻繁な交信

•

写真や音楽など大きめデータ
ざっくり
•

そばにいるよ検出/距離算出

•

iBeacon

文字列ちょっと送る

•

Background通信(すれ違い通信)

•

Androidとも繋ぐ

•

ユーザ間の頻繁な交信

•

写真や音楽など大きめデータ

CoreBluetooth

(素のBLE)

MultiPeer

Connectivity
得意・不得意

くらべます
送れるもの
iBeacon

BLE

13962

整数のみ/一方通行

Hello World!
こんにちは!

Multipeer
Background Mode
iBeacon
発信

(ビーコン役)

受信

(スマホ役)

発信


受信

(スマホ役)

BLE
(BLEアクセサリ役)
Multipeer
たぶんBLE(LowEnergy)じゃないから
Background切れちゃう
iBeacon
発信


BLEなのにNG
(電波は飛ぶけどデータが欠ける。
iPhoneの電波共有上の制約)

LowEnergyじゃないほうのBluetoothだから

(Backgroundじゃ電池食いつぶす)

Multipeer
プログラミングわかりやすさ
iBeacon

単純、コード少ない
ビーコン役

(送信専門)

BLE

親機/子機のような関係

(意識せねばならず少し難解)
BLEアクセサリ役

(Peripheral)

Multipeer

スマホ役

(受信専門)

スマホ役

(Central)

一度繋がっちゃえば、

どっちが親とか無く双方向

(シンプルでわかりやすい)
Framework
iBeacon
発信

受信

CoreBluetooth.framework


CoreLocation.framework

BLE
CoreBluetooth.framework

Multipeer
MultipeerConnectivity.framework
iBeacon
CoreLocationに作らせたデータを、CoreBluetothで


•

発信してるだけ..




•

つまりiBeaconとは:

BLE上で何を流すかの決め事にしかすぎない!

(複雑なことしたきゃ最初から素直にBLE使えばよい)

•

CoreLocationが、電波の強さを計算して

おおまかな距離を出してくれるのはいい
CoreBluetooth(素のBLE)
•

発信も受信もできてます、すれ違い通信ならコレ

•

文字列のみだが、IDの通知程度なら十分だろう

(数字のみのiBeaconよりいい)
!

!
受信→

発信→
MultipeerConnectivity
•

ユーザ間の交信なら圧倒的にコレ、かんたん

(簡単/N対N/BluetoothオフでもWiFiで)

•

大きいデータも。ストリーミングも!


•

たぶんBLEでなく、昔ながらのBluetoothベース

(BLEは巨大データもストリーミングも扱えない)
まとめ
•

そばにいるよ検出/距離算出

•

iBeacon

文字列ちょっと送る

•

Background通信(すれ違い通信)

•

Androidとも繋ぐ

•

ユーザ間の頻繁な交信

•

写真や音楽など大きめデータ

CoreBluetooth

(素のBLE)

MultiPeer

Connectivity
併用したっていい 例えば
1. BackgroundでBLE受信

→ LocalNotification

 「平松くんがあなたを呼んでいます」
2. Foregroundになったら

→ MultipeerConnectivity 上でチャット
3. iBeaconで距離調べて表示

 「平松くん:約8m」
例:先日使ってみました

MultipeerConnectivity
Yahoo! JAPAN「Open Hack Day 2」

iPhoneを裸眼で見える3Dにしてみる作品。

iPhone/iPad間でスクロール量などを同期。
おしまい

•

このプレゼンも

Bluetooth経由でやってみました!

(Keynoteのremote機能で遠隔操作)

More Related Content

iOS7アプリ同士の近距離通信どれがいい?