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に通知許可を表示する処理を追加する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // 通知許可を最初にもらう UIUserNotificationType types = UIUserNotificationTypeBadge| UIUserNotificationTypeSound| UIUserNotificationTypeAlert; UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil]; [application registerUserNotificationSettings:mySettings]; return YES; } |
4, ViewController.hに、CoreLocation.frameworkのインポートとプロトコルを追加する。
※Objective-Cのプロトコルとは、クラス継承する時に「この関数(メソッド)は絶対に実装しなさいよ!」と強制する機能の事です。
また、iBeacon系の変数も追加しておく。
1 2 3 4 5 6 7 8 |
#import <CoreLocation/CoreLocation.h> @interface ViewController : UIViewController<CLLocationManagerDelegate> @property CLLocationManager *locationManager; @property NSUUID *proximityUUID; @property CLBeaconRegion *beaconRegion; @property CLBeacon *nearestBeacon; @property NSString *str; |
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年も使っているとメイン開発機としては、ちょっと辛いって事か。