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

32
自作アプリを watchOS 2 対応した話 ~FastCheckin編~ Kosuke Ogawa (@koogawa) 2015.9.30 もくもくiOS勉強会@ネクスト 1周年記念LT会

Upload: kosuke-ogawa

Post on 14-Jan-2017

3.643 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

自作アプリを watchOS 2 対応した話 ~FastCheckin編~

Kosuke Ogawa (@koogawa) 2015.9.30 もくもくiOS勉強会@ネクスト 1周年記念LT会

Page 2: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

• 小川航佑 Kosuke Ogawa • @koogawa • nanapi 所属 • iOSアプリを仕事・趣味でいろいろ開発 • foursquare好き

70万DL突破! 20万DL突破!

Page 3: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

FastCheckin

•素早く簡単にfoursquareにチェックインするためのアプリ

Page 4: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

ぶち当たった様々な問題1. App Groupsでデータを共有できない問題

2. 画像がキャッシュできない問題

3. WatchKit Extensionのbundle identifier問題

4. startUpdatingLocationが使えない問題

5. NSURLConnection がエラーになる問題

Page 5: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

App Groupsで Watch↔iPhone間の

データ共有ができない問題

Page 6: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 1

App Group

(watchOS 2 Transition Guideより引用)

Page 7: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 2

(watchOS 2 Transition Guideより引用)

App Group×

Page 8: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

Watch Connectivity 使おう

DATA

(Introducing Watch Connectivityより引用)

Page 9: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

http://qiita.com/koogawa/items/b39e1419cbbcda8efc07

Page 10: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

画像がキャッシュ できない問題

Page 11: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

func addCachedImage(_ image: UIImage!, name name: String!) -> Bool func addCachedImageWithData(_ imageData: NSData!, name name: String!) -> Bool func removeCachedImageWithName(_ name: String!) func removeAllCachedImages()

キャッシュ系メソッドが 使えなくなっている

Page 12: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 1

Image

(watchOS 2 Transition Guideより引用)

Page 13: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 1

(watchOS 2 Transition Guideより引用)

Image

Page 14: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 1

(watchOS 2 Transition Guideより引用)

Cache

Page 15: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 2

(watchOS 2 Transition Guideより引用)

Image

Page 16: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 2ではWatch Extensionが Apple Watch側に移動したため、キャッシュする必要がなくなった

Page 17: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

WatchKit Extensionのbundle identifier問題

Page 18: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 1

Bundle identifier

Watch App com.koogawa.SampleWatchApp.watchkitapp

WatchKit Extension com.koogawa.SampleWatchApp.watchkitextension

Page 19: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

ビルドすると

Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier.

Page 20: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

つまり

watchOS 2では WatchKit Extension の bundle identifier が、 親の WatchApp の bundle identifier を Prefix に持ってないといけない

Page 21: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 2

Bundle identifier

Watch App com.koogawa.SampleWatchApp.watchkitapp

WatchKit Extension com.koogawa.SampleWatchApp.watchkitapp.watchkitextension

Page 22: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

startUpdatingLocationが 使えない問題

Page 23: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 2

Page 24: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 2

Page 25: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 2

• requestLocation 使おう

• 一回きりの位置情報取得が可能

Page 26: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

NSURLConnection がエラーになる問題

Page 27: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

watchOS 2

• NSURLSession

• Apple Watch 単体でサーバと通信可能

(Introducing Watch Connectivityより引用)

Page 28: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

一方で…

• NSURLConnection が使えない

• Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline."

• NSURLSession ベースに切り替える必要がある

Page 29: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

参考リンク

• watchOS 2 Transition Guide(必読)

• Introducing Watch Connectivity - WWDC 2015

• What's New in Core Location - WWDC 2015

Page 30: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

宣伝

•今だけ無料!(いつもは100円) • FastCheckinで検索

Page 31: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

WE ARE HIRING!!

http://recruit.nanapi.co.jp/

Page 32: 自作アプリを watchOS 2 対応した話 〜FastCheckin編〜

ありがとう ございました