メサイア・ワークス

iBeaconアプリの作り方(Xcode6.2 + Objective-C)

iBeaconアプリの作り方(Xcode6.2 + Objective-C)

1, Buld PhasesのLink Binary With Librariesで、CoreLocation.frameworkをプロジェクトに追加する。
2, Infoに、iBeacon使用許可の項目を追加する。Custom iOS Target Propertiesに二行追加(適当な行を選択して+ボタンを押す)
最初の起動で、ここに書いたメッセージが表示されます。
a, NSLocationWhenInUseUsageDescription(アプリ使用時のみ位置情報を利用する理由を書く)
b, NSLocationAlwaysUsageDescription(常に位置情報を利用する理由を書く)

3, AppDelegate.mに通知許可を表示する処理を追加する。

4, ViewController.hに、CoreLocation.frameworkのインポートとプロトコルを追加する。
※Objective-Cのプロトコルとは、クラス継承する時に「この関数(メソッド)は絶対に実装しなさいよ!」と強制する機能の事です。
また、iBeacon系の変数も追加しておく。

5, プロトコルに従い、以下のメソッドを実装していく。

1, 最初に位置情報の許可を得る
didChangeAuthorizationStatus:(CLAuthorizationStatus)status
2, リージョン(iBeaconの電波内)に入った時の処理(モニタリング開始する)
didEnterRegion:(CLRegion *)region
3, リージョン(iBeaconの電波内)から出た時の処理(モニタリング終了する)
didExitRegion:(CLRegion *)region
4, 実際にモニタリング(ibeaconまでの距離測定など)監視開始
didStartMonitoringForRegion:(CLRegion *)region
5, 位置情報取得に成功した時に呼ばれる処理
didUpdateLocations:(NSArray *)locations {
6, 領域内にいるかどうかを確認する処理(この処理が無いと、アプリ起動時にリージョン内だった場合にレンジングが開始されない)
didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
7, 現在の状況を1秒単位で測定する処理
didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region

6, 以上の実装をすれば、iBeaconアプリとして利用できるはず…。
具体的なソースはgistにあります。動作的には、こんな感じ
iBeaconの勉強会用デモに寄生獣ごっこアプリを作って、YouTubeにアップしてみた。
[youtube]https://www.youtube.com/watch?v=KxxW55vkhj0[/youtube]

それにしてもXcode6.2にしてから、MacBook Air 2011(mid)をクラムシェルで使っていると、常時ファンが回転している…。
充電を止めて、通常使用でもファンが回る〜。流石に4年も使っているとメイン開発機としては、ちょっと辛いって事か。

モバイルバージョンを終了