Gunosy for Apple Watchができるまで
Gunosyが2015/05/27にApple Watch meetup @ HillsGarageを開催した。
私にとっては初めての参加者100人近いイベントだったので学びが多かった。
Apple Watch meetup @ HillsGarageを開催しました。
発表内容
Gunosy for Apple Watchができるまでに突破した課題達をまとめた内容。 Twitter上で反応があった内容を一部抜粋して紹介する。
Watch App
willActivate()の活用
現在Apple Watch上でのビューが呼び出されるまでの手順は以下のようになっている。
- Watch Appが呼び出される
- Storyboardが読み込まれる
- 対象画面のinit, awakeが走る
- Watch上で画面が表示される
- willActivate()が呼ばれる
結果的に、initとawakeでの処理を最小限にすることでユーザーの体感スピードが上がる。
// MARK: Life cycle override func awakeWithContext(context: AnyObject?) { super.awakeWithContext(context) if context != nil { self.article = context as? ArticleEntity } } override func willActivate() { super.willActivate() if article != nil { self.layout(article!) } }
WKInterfaceGroupの利用
画像を用いる場合はWKInterfaceImage
をWKInterfaceGroup
の中に入れると便利である。Placeholderとしても使えるし、storyboardから角丸の設定もできる。
Placeholderを設定する場合は以下のとおり。
self.imageGroup.setBackgroundImage(UIImage(named:"no_image"))
角丸に設定するためには、WKInterfaceGroup
を選択し、Attribute inspectorからRadiusを変更できる。
Glance
複雑な描画を本体で
Apple Watch用のStoryboardはiOSアプリ用と比較してレイアウトに制限が多い。
そこでGunosyアプリを作る際には、Extension上でCATextLayer
を使って描画し、NSDataとしてWatchに転送している。その際作ったライブラリは以下で公開している。
GitHub - jeffsuke/GlanceWordRainbowImage
イベント開催する上での学び
個人的には大き目のイベントだったので開催する上での学びも多かった。 今後似たようなイベントを開催する上での参考になれば嬉しい。
- 食事はピザが大人気だった
- ビール複数種類あると良い
- 100人分注文すると余る
- デザートはいらない
- 椅子の向きとか、音楽、雰囲気を工夫しないとかたい雰囲気になりがち
- 会社から4人片付けに参加したが、足りず周りに協力してもらう必要があった
- HillsGarageはドラムあるし、音響いいし、広いし、最高の会場だった
- 勉強会の時間は押すもの。バッファを積もう。