swwdc gpsロガー作成で得たtips

12
GPSロガー作成で得た Tips KyasuSoft

Upload: keietsu-yasuhara

Post on 13-Jun-2015

446 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: SWWDC GPSロガー作成で得たtips

GPSロガー作成で得たTipsKyasuSoft

Page 2: SWWDC GPSロガー作成で得たtips

自己紹介

• 安原 啓悦(ヤスハラ ケイエツ)

• Twitter @kyasusoft

Page 3: SWWDC GPSロガー作成で得たtips

バックグラウンドでの ロケーション取得の継続

• バックグラウンドでのロケーション取得

• Info.plist

Required background modes :

App registers for location updates

Page 4: SWWDC GPSロガー作成で得たtips
Page 5: SWWDC GPSロガー作成で得たtips

• ロケーション取得開始

[locationManager startUpdateLocation]

• これだけだと、約20分動きがないと休止モードに入る。動き出すと再開するはずなのですが、実際やってみると再開しないっぽい!

• そこで、プロパティを設定。

locationManager.pausesLocationUpdatesAutomatically = NO;

Page 6: SWWDC GPSロガー作成で得たtips

位置情報って結構飛ぶんです

• CLLocationのDelegeteで位置情報が取得できますが、た~まに100mとかポンと飛んだデータが得られます。

• そのまま使うと、変な位置に居ることになったり、距離が大幅に狂ったりします。

Page 7: SWWDC GPSロガー作成で得たtips
Page 8: SWWDC GPSロガー作成で得たtips

• そこで、対策として

• 前回の取得位置から100m離れていたら無効データとして捨てることにしました。

• 大体1秒毎にDelegateが呼ばれるので時速360kmで走るといつまでも捨て続けることになりますが...

Page 9: SWWDC GPSロガー作成で得たtips

アプリが喋る時に BGMの音量を下げる

• 「ミュージック」アプリで音楽をかけながらアプリで一定距離、時間のタイミングで喋らせた。

• Info.plist

Required background modes :

App plays audio or streams audio/video using AirPlay

Page 10: SWWDC GPSロガー作成で得たtips

// バックグラウンドでの再生の準備

AVAudioSession *session = [AVAudioSession sharedInstance];

[session setCategory:AVAudioSessionCategoryPlayback error:nil];

UInt32 p = 1;

// 他の音も出す

AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(p), &p);

p = 1;

// 他の音を下げる

AudioSessionSetProperty (kAudioSessionProperty_OtherMixableAudioShouldDuck, sizeof(p), &p);

Page 11: SWWDC GPSロガー作成で得たtips

MKMapView

• 拡大時に建物を表示(iOS 7 only)

• _map.showsBuildings = YES;

• ランドマークを表示(iOS 7 only)

• _map.showsPointsOfInterest = YES;

Page 12: SWWDC GPSロガー作成で得たtips