Apple Watch App Memo

nakajijapan

折角Apple Watchを購入したので、何かしら作れるようになりたいので、WatchKitのことを雑に自分用にメモした。

どんな機能があるのか

WatchKit App

  • 通常Apple Watchで利用するアプリ
  • 階層型、ページ型がある

Glance

  • 意味合いの通り、「ちらっ」確認する用の画面。
  • 下スワイプから出現されるもの。
  • 1ページのみ。

Notification

  • iPhoneのプッシュ通知をApple Watch側から見れるようにしたもの

新しく増えたインタラクション

  • プレス
    • 強く押す感じ

構造

  • 通信はWatchKit経由で通信を行う。

InterfaceController

  • 画面はInterfaceControllerなるものごとに管理されている

Life Cycle

init

  • インスタンス化時に呼び出される

awakeWithContext

  • UIの更新
  • ロードされたデータをView側に更新するときに呼び出される
  • コンテキストデータの更新はここで行われることが推奨されるけど、必須ではない

willActivate

  • 表示されたときよびだされる
  • Interfaceに対する小さな変更をするときなど利用する
    • アニメーションの変更のときとかかな

didDeactivate

  • 利用されなくなった、しばらく経過すると呼び出される
  • ここではInterfaceオブジェクトの変数を変更できない、willActivateが呼び出されるまで無視される

要素

クラスはこれだけ。

import WatchKit.WKDefines
import WatchKit.WKError
import WatchKit.WKInterfaceButton
import WatchKit.WKInterfaceController
import WatchKit.WKInterfaceDate
import WatchKit.WKInterfaceDevice
import WatchKit.WKInterfaceGroup
import WatchKit.WKInterfaceImage
import WatchKit.WKInterfaceLabel
import WatchKit.WKInterfaceMap
import WatchKit.WKInterfaceObject
import WatchKit.WKInterfaceSeparator
import WatchKit.WKInterfaceSlider
import WatchKit.WKInterfaceSwitch
import WatchKit.WKInterfaceTable
import WatchKit.WKInterfaceTimer

Leveraging iOS Technologies

  • テクノロジーの制限は受け入れるべきだ!
    • ユーザは位置情報(例)の制限している可能性があるのでそれに準拠すべき
  • バックグランド処理は利用しない
    • ユーザの操作のみで作用するべき
  • 時間のかかる処理はしない
    • ユーザの操作が止まるとしばらくしたら止まるので、その処理も止まってしまう。

参照

だいたいこの辺調べれば知りたいこと知れる。

Developing for Apple Watch