2015年

4月

06日

Apple Watch アプリ開発で押さえておきたいポイント


このページは、自分の開発時の指針用に「Apple Watch 向けアプリ開発で押さえておきたいポイント」を参考にしてまとめています。

自分用のメモとし、いつでも振り返ることが出来るので大変助かり感謝しております。


WatchKit の情報源

WatchKit の登場とともに、ドキュメントなどの情報源も公開されています。
特に押さえておかなければならないのは、以下の 2 つのドキュメントです。


Apple Watch Human Interface Guidelines
Apple Watch Programming Guide


Apple Watch Human Interface Guidelines

iOS アプリには iOS Human Interface Guidelines が、OS X アプリには OS X Human Interface Guidelines がありました。それらの Apple Watch 版がこの「Apple Watch Human Interface Guidelines」です。

これは、Apple Watch 向けアプリの開発に関わる人は読んでおくべきでしょう。

企画やデザインの人は必要でしょう。

UI Design Basics

このセクションは、Apple Watch の基本的な情報や考え方を述べています。
いくつかポイントを挙げます。

WatchKit App
WatchKit App は単体で動作するアプリではありません。iPhone とペアになって動作します。
App 画面のナビゲーションは、Hierarchical と Page-based のどちらかです。組み合わせて使うことはできません。

Glance
App 画面とは別に Glance という画面を持つことができます。
Glance にはインタラクションはなく、タップすると WatchKit App 本体が起動します。

通知
ローカル通知やリモート通知を受け取ることができます。通知の画面は、Short Look と Long Look の 2 段階に分かれています。
通知画面(Short Look、Long Look)には、ボタンを置いてなんらかのアクションを実行することが可能です。

また、画面のレイアウトを細かく指定することはできず、一定のルールに従う必要があります。文字サイズも、フォントサイズ指定でなく Dynamic Type を使うことが推奨されています。


UI Elements
このセクションは、Watch App で使用可能な UI パーツを述べています。

ラベル
画像
グループ(レイアウト用)
テーブル
ボタン
スイッチ
スライダー
地図
日付・時間表示
メニュー画面

これ以外の独自パーツを使うことはできません。

Icon and Image Design

このセクションは、アプリアイコンのサイズやデザイン指針を述べています。また、メニュー画面のアイコンについても述べられています。

Apple Watch Programming Guide
「Apple Watch Programming Guide」は Apple Watch 向けアプリのプログラマ向けのガイドです。エンジニアの人は、上述の HIG に加えてこれを読みましょう。

Overview
このセクションは、WatchKit App のアーキテクチャや開発のしかたを述べています。いくつかポイントを挙げます。

Apple Watch 向けアプリは、iOS アプリの Extension の一種です(WatchKit Extension)。
WatchKit Extension のうち、iOS 端末側にコードが、Watch 端末側に Storyboard が配置されます。
WatchKit App の動作時には、Watch 端末と iOS 端末が通信します。Watch 端末側にコードはなく、コードの実行は iOS 端末側で行われます。ただし、通信処理は隠蔽されており、コード上で通信処理を記述はしません。
WatchKit App のライフサイクルの考え方は、iOS アプリとは異なります。

WatchKit Apps
このセクションは、WatchKit App の具体的なコーディングのしかたを述べています。いくつかポイントを挙げます。

Storyboard で UI を作成します。
レイアウトはグループを活用して行います(AutoLayout とは異なります)。
クラスの設計・構成が iOS とは異なります。WKInterfaceController クラスがコントローラ、WKInterfaceObject のサブクラスが UI パーツです。
画像データは iOS 端末から Watch 端末に送ることも可能です。必要に応じてキャッシュを活用します。

Glances
このセクションは、Glance のコーディングのしかたを述べています。

Glance も Storyboard で作成します。Storyboard 上に App 用のエントリポイントとは別に Glance 用のエントリポイントがあります。

Notifications
このセクションは、通知画面(Short Look、Long Look)のコーディングのしかたを述べています。

通知画面もやはり Storyboard で作成します。Storyboard 上に Notification category のエントリポイントがあります。通知画面は UI やアクションをカスタマイズすることができます。

  

目 次