自作アプリを watchos 2 対応した話 〜fastcheckin編〜

Post on 14-Jan-2017

3.643 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

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/

ありがとう ございました

top related