magazine.gif Apple Watchプログラミング作法: WatchKitアプリ開発の教科書

はじめに

第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.6 シミュレータで動作確認
  • 10.7 地図画像の転送量を少なくする
  • 10.8 画像を使って進行方向を表示する

第11章 メニュー

  • 11.1 メニューを追加する
  • 11.2 可変メニューにする

第12章 グランス(GLANCE)

  • 12.1 グランス画面を追加する
  • 12.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.7 新しい通知カテゴリ用のペイロードデータ
  • 13.8 通知グループ別のスキーム追加
  • 13.9 カテゴリ別に通知画面を起動する
  • 13.10 アプリメインで結果を判別する
  • 13.11 Apple Watch実機での動作確認が必要

第14章 ベータ版のアドホック配布(参考情報)

  • 14.1 テストデバイスのUDIDを収集する
  • 14.2 配布用のファイルをビルドする
  • 14.3 配布用ウェブサイトを準備する