目次

はじめに

第1部 APPLE WATCHの作法

第1章 APPLE WATCHとは
 1.1 現在のデバイス、Apple Watch登場
 1.2 伝統と革新
 1.3 人間らしさへの回帰
 1.4 iPhoneキラー
 1.5 なぜ腕時計なのか
 1.6 スピード、スピード、スピード
 1.7 流れをつくる
 1.8 iPhoneとの協同作業
 1.9 なぜネイティブアプリではないのか
 1.10 ウォッチ・ファースト
 1.11 情報とバランス良くつきあう

第2章 APPLE WATCHの機能と特徴
 2.1 革新的技術
  2.1.1 小さなRetinaディスプレイ
  2.1.2 デジタルクラウン(Digital Crown)
  2.1.3 感圧タッチ(Force Touch)と、Tapticエンジン
  2.1.4 心拍センサーと加速度センサー、ジャイロスコープ
  2.1.5 S1チップ
  2.1.6 充電機構

第2部 デザイン編

第3章 APPLE WATCHインターフェイス
 3.1 Apple Watchのテーマ
  3.1.1 パーソナル
  3.1.2 統一的
  3.1.3 軽快
 3.2 コンテンツ
 3.3 操作の基本
  3.3.1 タップ
  3.3.2 ジェスチャー
  3.3.3 感圧タッチ(フォースタッチ)
  3.3.4 デジタルクラウン
 3.4 レイアウト・ガイドライン
  3.4.1 画面全体を使う
  3.4.2 スクリーンサイズの違いを考慮する
 3.5 読みやすい色、フォント
 3.6 タイポグラフィー
 3.7 アニメーション
 3.8 ブランディング
 3.9 アイコン

第3部 プログラム編

第4章 簡単なWATCHアプリを作ってみよう
 4.1 MyTimerアプリ
  4.1.1 プロジェクトを作成する
  4.1.2 Watchアプリを動かしてみる
  4.1.3 Watchアプリの画面を制作する
  4.1.4 Watchアプリのプログラムを実装する
  4.1.5 プログラムの説明
 4.2 ラップタイム
  4.2.1 画面を修正する
  4.2.2 テーブルを設定する
  4.2.3 テーブルセルを設定する
  4.2.4 ボタンを切り替える
  4.2.5 テーブルの表示
  4.2.6 動作を確認する

第5章 WATCHKITアプリの構造と位置付け
 5.1 WatchKitアプリとiOSアプリの関係
 5.2 WatchKitアプリとWatchKit Extensionの役割分担
 5.3 WatchKitアプリ内にデータは無い
 5.4 グランスと通知表示とWatchiKitメイン
  5.4.1 グランス(Glance)
  5.4.2 通知表示(Notification)

第6章 複数画面アプリ
 6.1 画面ナビゲーションの種類
  6.1.1 ページベース
  6.1.2 階層型
  6.1.3 モーダル
 6.2 ページベースのサンプル
  6.2.1 画面の作成
  6.2.2 Interface Controllerクラスの作成
  6.2.3 確認プログラムの実装
  6.2.4 動的なページ構成
 6.3 階層型のサンプル
 6.4 ページベースと階層型の混在

第7章 APPLE WATCHからIPHONEへアクセスする
 7.1 Apple Watchを楽器にする「Fun Piano」
  7.1.1 イメージアセットへの画像登録
  7.1.2 ボタンをレイアウトする
  7.1.3 Apple Watch画面サイズ毎の調整
  7.1.4 アクションメソッドの設定
  7.1.5 Apple WatchからiPhoneへのコマンド送信
  7.1.6 音を鳴らす
  7.1.7 より使いやすい楽器を目指して
 7.2 Apple WatchからiPhoneへ記録する「WatchLog」
  7.2.1 アプリの構造
  7.2.2 Apple Watch側の画面作成
  7.2.3 InterfaceControllerのコーディング
  7.2.4 iPhone側の画面作成
  7.2.5 AppDelegateのコーディング
  7.2.6 TableView動作のコーディング
  7.2.7 動かしてみる
 7.3 WatchKitアプリとiPhoneアプリを同時にデバッグする

第8章 IPHONEからAPPLE WATCHへアクセスする
 8.1 Apple Watchへイベントを送る「TicTacToe」
  8.1.1 iPhoneからApple Watchへの情報伝達
  8.1.2 iPhoneからApple Watchへ情報伝達を仕掛ける
  8.1.3 通知にパラメータを乗せる
  8.1.4 画面の作成
  8.1.5 WatchKit ExtensionからiPhoneへの流れをコーディング
  8.1.6 iPhoneからWatchKit Extensionへの流れをコーディング
  8.1.7 動かしてみる

第9章 APPLE WATCHとIPHONEでデータを共有する
 9.1 共有の仕組み(App Group)
 9.2 App Groupの利用
  9.2.1 App Groupを設定する
  9.2.2 共有コンテナ管理クラス ShareData
 9.3 サンプルアプリの説明
  9.3.1 画面の作成
  9.3.2 iPhone側のコーディング
  9.3.3 Apple Watch側のコーディング
 9.4 Apple Watch設定バンドル
  9.4.1 設定バンドルの追加
  9.4.2 設定バンドルの編集
  9.4.3 設定値を利用する
 9.5 WatchKitとiOSの連携の目的を考える

第10章 位置情報を利用する
 10.1 現在地をApple Watchに表示する
 10.2 画面の作成
 10.3 位置情報をバックグラウンド取得する準備
 10.4 位置情報の利用許可を受ける
 10.5 コーディング
  10.5.1 初期化部分
  10.5.2 画面の表示開始
  10.5.3 位置情報の取得
  10.5.4 地図画面の更新
  10.5.5 位置情報の利用承認メッセージ
 10.6 シミュレータで動作確認
 10.7 地図画像の転送量を少なくする
 10.8 画像を使って進行方向を表示する
  10.8.1 WatchKit Extension内の画像を利用する
  10.8.2 画像キャッシュを利用して転送量を少なくする
  10.8.3 WatchKitアプリ内の固定画像を利用する
  10.8.4 画像データの3種類の利用形態

第11章 メニュー
 11.1 メニューを追加する
  11.1.1 Interface ControllerにMenuアイテムを追加
  11.1.2 コーディング
 11.2 可変メニューにする

第12章 グランス(GLANCE)
 12.1 グランス画面を追加する
  12.1.1 プロジェクト生成時にグランスを追加しておく方法
  12.1.2 あとからグランスを追加する方法
 12.2 現在地をグランスに表示する
  12.2.1 テンプレートを選択して画面を作成
  12.2.2 コーディング
 12.3 Glanceエントリーポイント用のスキーム
 12.4 アプリメインの起動時に情報を渡す
  12.4.1 Handoff(ハンドオフ)の仕組みで情報を受け渡す
  12.4.2 プログラムコードの修正

第13章 通知表示(NOTIFICATION)
 13.1 ミーティングへの参加を問い合わせる
 13.2 プロジェクトの作成
 13.3 メソッドが呼ばれる順番
 13.4 通知される内容
 13.5 動的ロングルックを実装する
 13.6 別の通知グループを追加する
  13.6.1 新しいカテゴリの通知画面を追加する
  13.6.2 コーディング
 13.7 新しい通知カテゴリ用のペイロードデータ
 13.8 通知グループ別のスキーム追加
 13.9 カテゴリ別に通知画面を起動する
 13.10 アプリメインで結果を判別する
 13.11 Apple Watch実機での動作確認が必要

第14章 ベータ版のアドホック配布(参考情報)
 14.1 テストデバイスのUDIDを収集する
 14.2 配布用のファイルをビルドする
 14.3 配布用ウェブサイトを準備する