自作アプリを watchos 2 対応した話 〜fastcheckin編〜
TRANSCRIPT
自作アプリを watchOS 2 対応した話 ~FastCheckin編~
Kosuke Ogawa (@koogawa) 2015.9.30 もくもくiOS勉強会@ネクスト 1周年記念LT会
• 小川航佑 Kosuke Ogawa • @koogawa • nanapi 所属 • iOSアプリを仕事・趣味でいろいろ開発 • foursquare好き
70万DL突破! 20万DL突破!
FastCheckin
•素早く簡単にfoursquareにチェックインするためのアプリ
ぶち当たった様々な問題1. App Groupsでデータを共有できない問題
2. 画像がキャッシュできない問題
3. WatchKit Extensionのbundle identifier問題
4. startUpdatingLocationが使えない問題
5. NSURLConnection がエラーになる問題
App Groupsで Watch↔iPhone間の
データ共有ができない問題
watchOS 1
App Group
(watchOS 2 Transition Guideより引用)
watchOS 2
(watchOS 2 Transition Guideより引用)
App Group×
Watch Connectivity 使おう
DATA
(Introducing Watch Connectivityより引用)
http://qiita.com/koogawa/items/b39e1419cbbcda8efc07
画像がキャッシュ できない問題
func addCachedImage(_ image: UIImage!, name name: String!) -> Bool func addCachedImageWithData(_ imageData: NSData!, name name: String!) -> Bool func removeCachedImageWithName(_ name: String!) func removeAllCachedImages()
キャッシュ系メソッドが 使えなくなっている
watchOS 1
Image
(watchOS 2 Transition Guideより引用)
watchOS 1
(watchOS 2 Transition Guideより引用)
Image
watchOS 1
(watchOS 2 Transition Guideより引用)
Cache
watchOS 2
(watchOS 2 Transition Guideより引用)
Image
watchOS 2ではWatch Extensionが Apple Watch側に移動したため、キャッシュする必要がなくなった
WatchKit Extensionのbundle identifier問題
watchOS 1
Bundle identifier
Watch App com.koogawa.SampleWatchApp.watchkitapp
WatchKit Extension com.koogawa.SampleWatchApp.watchkitextension
ビルドすると
Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier.
つまり
watchOS 2では WatchKit Extension の bundle identifier が、 親の WatchApp の bundle identifier を Prefix に持ってないといけない
watchOS 2
Bundle identifier
Watch App com.koogawa.SampleWatchApp.watchkitapp
WatchKit Extension com.koogawa.SampleWatchApp.watchkitapp.watchkitextension
startUpdatingLocationが 使えない問題
watchOS 2
watchOS 2
watchOS 2
• requestLocation 使おう
• 一回きりの位置情報取得が可能
NSURLConnection がエラーになる問題
watchOS 2
• NSURLSession
• Apple Watch 単体でサーバと通信可能
(Introducing Watch Connectivityより引用)
一方で…
• NSURLConnection が使えない
• Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline."
• NSURLSession ベースに切り替える必要がある
参考リンク
• watchOS 2 Transition Guide(必読)
• Introducing Watch Connectivity - WWDC 2015
• What's New in Core Location - WWDC 2015
宣伝
•今だけ無料!(いつもは100円) • FastCheckinで検索
WE ARE HIRING!!
http://recruit.nanapi.co.jp/
ありがとう ございました