watchos2 tips

23
potatotips #23 watchOS2 tips 成田元輝 @mo_to_44

Upload: motoki-narita

Post on 14-Jan-2017

2.858 views

Category:

Mobile


2 download

TRANSCRIPT

Page 1: watchOS2 tips

potatotips #23watchOS2 tips ⌚

成田元輝@mo_to_44

Page 2: watchOS2 tips

自己紹介

• @mo_to_44

• 株式会社ネクストで  HOME’S(不動産検索アプリ)のiOSエンジニア

• 最近はアプリ向けのAPIをつくるためにRubyも書いたり

Page 3: watchOS2 tips

自己紹介

• 個人でもカメラアプリとか作ってます

•   リボカメ

• Apple Watchにも対応

• potatotips #21で発表

Page 4: watchOS2 tips

watchOS2 tips

1. complicationはショートカットとして配置できる

2. WCSessionの機能は使い分ける

3. WCSessionを使用する場合はターゲットをまたがるクラスを用意する

4. デバッグ時はplayHapticを仕込んでおく

Page 5: watchOS2 tips

complicationはショートカットとして配置できる

Page 6: watchOS2 tips

complicationって?

• ⌚の文字盤に3rd Partyアプリの情報を表示可能にするwatchOS2の機能

• 自分のアプリのデータを文字盤に表示できる

Page 7: watchOS2 tips

complicationはショートカットとして配置できる

• 表示するデータを用意しなければいけないように感じるが、実際にはアプリ起動のショートカットとして置くことも問題ない

• (いまのところ)入れられるところは全部入れちゃってもいいかも

Page 8: watchOS2 tips

WCSessionの機能は使い分ける

Page 9: watchOS2 tips

WatchConnectivity NSURLSession

WCSessionとは?

• 📱⇆⌚のやり取りを可能にするWatchConnectivity Frameworkの主要なクラス

• データ送信方法が用途に応じて用意されている

1. Background Transfers

2. Interactive Messaging

Page 10: watchOS2 tips

WCSessionの機能は使い分ける

• だいたいの場合はsendMessageでiPhone / Apple Watchからデータを取ってくることが可能

• サイズの大きいデータ(特に画像)は転送できないのでtransferFileメソッドを使用する など

Page 11: watchOS2 tips

WCSessionで渡すデータはターゲット間で共有する

Page 12: watchOS2 tips

WCSessionのsendMessageの データは[String:AnyObject]で

送受信する

Page 13: watchOS2 tips

WCSessionのsendMessageの データは[String:AnyObject]で

送受信する

Page 14: watchOS2 tips

📱 ⌚[String:AnyObject]

Page 15: watchOS2 tips

• キー名の定義がiOS/watchOS両方に存在 • キー名を変えたかったら両方修正 • 該当する値の型を変える場合も両方修正

Dictionaryのデメリット

Page 16: watchOS2 tips

iOS/watchOSターゲット間で 型を共通定義

Page 17: watchOS2 tips

[String:AnyObject]ターゲット間 共通データ型

ターゲット間 共通データ型

Dictionaryに変換

共通データ型に変換

Dictionary ⇆ 共通のデータ型 に変換

📱 ⌚Dictionaryに変換

共通データ型に変換

• 送信時に共通データ型から[String:AnyObject]に変換 • [String:AnyObject]を受け取ったら共通データ型に変換

Page 18: watchOS2 tips

iOS/watchOSターゲット間で型を共有

iOSとwatchOS、両方のターゲットで定義を共通化させる

iOSwatchOS

File inspectorから設定可能

Page 19: watchOS2 tips

• 定義が一つにまとまる • 変更が楽になる • [String:AnyObject] の変換処理が一つにまとまっているのでバグを見つけやすい (key名を間違えていた!とか起きにくい)

Page 20: watchOS2 tips

長いビルド時間 ☕ の終わりにHaptic

Page 21: watchOS2 tips

⌚ 実機でのデバッグ• めちゃくちゃ時間がかかります

• 一番長かったときはビルドしてからアプリが起動するまで10分待ちました

Page 22: watchOS2 tips

起動した時に音を鳴らす

• watchOS2から追加されたhapticを使用して、アプリ起動時に音がなるように仕込む

• あとはコーヒー ☕ 入れたり、シャワー浴びたり 🚿 、本 📖 読んだり隙間時間を有効活用

Page 23: watchOS2 tips

おわり