Contenu connexe
Similaire à watchOS 2 新機能の細かい話 (20)
Plus de Shuichi Tsutsumi (18)
watchOS 2 新機能の細かい話
- 2. • 堤 修一(つつみ しゅういち)
• iOS専業フリーランス
• ブログ『Over&Out その後』
• 著書
『iOS×BLE Core Bluetoothプログラミング』
『iOSアプリ開発 達人のレシピ100』
自己紹介
- 11. watchOS-2-Sampler
• watchOS 2 新機能の
サンプルコード集
• 現在の収録サンプル:
14種類
- Accelerometer
- Gyroscope
- Pedometer
- Heart Rate
- Table Animations
- Animated Properties
- Audio Rec & Play
- Picker Styles
- Taptic Engine
- Alert
- Animation with Digital Crown
- Interactive Messaging
- Open System URL
- Audio File Player
- 22. watchOS 2 から、ネイティブ動作するようになった!
→ Extension のコードもウォッチ側で実行される
→ Watch Extension の Asset Catalog も、Watch App の
Asset Catalog もウォッチ側にある
→ どっちに置いてもいいんじゃ・・・?
→ そんなことはない!
- 28. • Watch App 側リソースを利用
- WKImage や WKInterfaceImage 等の WatchKit のクラスから name
で参照する場合
- 29. • Watch App 側リソースを利用
- WKImage や WKInterfaceImage 等の WatchKit のクラスから name
で参照する場合
- IB からセットする場合
- 30. • Watch App 側リソースを利用
- WKImage や WKInterfaceImage 等の WatchKit のクラスから name
で参照する場合
- IB からセットする場合
- (名前をセットしたものがプレビューされてるだけなので、結局は上と同じ)
- 31. • Watch App 側リソースを利用
- WKImage や WKInterfaceImage 等の WatchKit のクラスから name
で参照する場合
- IB からセットする場合
- (名前をセットしたものがプレビューされてるだけなので、結局は上と同じ)
• Watch Extension 側リソースを利用
- 32. • Watch App 側リソースを利用
- WKImage や WKInterfaceImage 等の WatchKit のクラスから name
で参照する場合
- IB からセットする場合
- (名前をセットしたものがプレビューされてるだけなので、結局は上と同じ)
• Watch Extension 側リソースを利用
- UIImage 等の WatchKit 以外のクラスから参照する場合
- 33. • Watch App 側リソースを利用
- WKImage や WKInterfaceImage 等の WatchKit のクラスから name
で参照する場合
- IB からセットする場合
- (名前をセットしたものがプレビューされてるだけなので、結局は上と同じ)
• Watch Extension 側リソースを利用
- UIImage 等の WatchKit 以外のクラスから参照する場合
• 参考
- 34. • Watch App 側リソースを利用
- WKImage や WKInterfaceImage 等の WatchKit のクラスから name
で参照する場合
- IB からセットする場合
- (名前をセットしたものがプレビューされてるだけなので、結局は上と同じ)
• Watch Extension 側リソースを利用
- UIImage 等の WatchKit 以外のクラスから参照する場合
• 参考
- WWDC15 セッション 207“WatchKit in depth Part1”スライドp40∼
- 42. • って WWDC15 セッション207“WatchKit in depth part1”スライド p59 に
書いてある
Must use a shared container
- 43. • って WWDC15 セッション207“WatchKit in depth part1”スライド p59 に
書いてある
• “WatchKitAudioRecorder”の実装もそうなってる
Must use a shared container
- 44. • って WWDC15 セッション207“WatchKit in depth part1”スライド p59 に
書いてある
• “WatchKitAudioRecorder”の実装もそうなってる
• Watch の Extension と App で“App Groups”を有効にする
Must use a shared container
- 45. • って WWDC15 セッション207“WatchKit in depth part1”スライド p59 に
書いてある
• “WatchKitAudioRecorder”の実装もそうなってる
• Watch の Extension と App で“App Groups”を有効にする
• なぜ?(メディアリソースは Extension と App で共用するから?)
Must use a shared container
- 48. • 要ウォッチとの Bluetooth Headset ペアリング
- ウォッチ側スピーカーからのオーディオファイル再生は
presentMediaPlayerControllerWithURL:options:completion:
を利用しないとできない?
- 49. • 要ウォッチとの Bluetooth Headset ペアリング
- ウォッチ側スピーカーからのオーディオファイル再生は
presentMediaPlayerControllerWithURL:options:completion:
を利用しないとできない?
• WKAudioFilePlayerItem: でオブジェクト生成直後に play し
ようとしてはいけない
- 50. • 要ウォッチとの Bluetooth Headset ペアリング
- ウォッチ側スピーカーからのオーディオファイル再生は
presentMediaPlayerControllerWithURL:options:completion:
を利用しないとできない?
• WKAudioFilePlayerItem: でオブジェクト生成直後に play し
ようとしてはいけない
- 51. • 要ウォッチとの Bluetooth Headset ペアリング
- ウォッチ側スピーカーからのオーディオファイル再生は
presentMediaPlayerControllerWithURL:options:completion:
を利用しないとできない?
• WKAudioFilePlayerItem: でオブジェクト生成直後に play し
ようとしてはいけない
• status プロパティが ReadyToPlay になれば再生OK
- 55. • watchOS Developer Library には Core Bluetooth のド
キュメントはない
• ドキュメントは置き忘れてるだけかもしれない
• ということで「念のため」 Watch Extension 側の
コードで import してみた
- 56. • watchOS Developer Library には Core Bluetooth のド
キュメントはない
• ドキュメントは置き忘れてるだけかもしれない
• ということで「念のため」 Watch Extension 側の
コードで import してみた
- 57. • watchOS Developer Library には Core Bluetooth のド
キュメントはない
• ドキュメントは置き忘れてるだけかもしれない
• ということで「念のため」 Watch Extension 側の
コードで import してみた
• (やはり)ダメでした・・・
- 61. • Watch Connectivity
- Phone - Watch 間で相互にメッセージやデータを
送れる
- 前からあった openParent∼ は Watch → Phone だ
け(ただし Phone から Reply を返すことは可)
- 62. • Watch Connectivity
- Phone - Watch 間で相互にメッセージやデータを
送れる
- 前からあった openParent∼ は Watch → Phone だ
け(ただし Phone から Reply を返すことは可)
• メッセージ送信可否のチェック
- 66. • 要は、Watch App がバックグラウンドのときは iPhone
側からのメッセージを受け取れない
• あくまで WCSession の reachable の話。Application
context や User info transfer, File transfer を使えば Wacth
App がバックグラウンドのときも Phone → Watch へ情
報を送れるかも(後日試してサンプル追加予定)
- 67. • 要は、Watch App がバックグラウンドのときは iPhone
側からのメッセージを受け取れない
• あくまで WCSession の reachable の話。Application
context や User info transfer, File transfer を使えば Wacth
App がバックグラウンドのときも Phone → Watch へ情
報を送れるかも(後日試してサンプル追加予定)
• 参考:WWDC15 セッション713
“Introducing Watch Connectivity”
- 68. watchOS-2-Sampler
GitHub: shu223/watchOS-2-Sampler
Blog: watchOS 2 の新機能のサンプルコード集『watchOS-2-Sampler』
- Accelerometer
- Gyroscope
- Pedometer
- Heart Rate
- Table Animations
- Animated Properties
- Audio Rec & Play
- Picker Styles
- Taptic Engine
- Alert
- Animation with Digital Crown
- Interactive Messaging
- Open System URL
- Audio File Player