このページの本文へ

前へ 1 2 次へ

Apple Geeks ― 第156回

Apple Watchのユニークさは、まさにここにある - 「WatchKit」

2014年11月28日 18時00分更新

文● 海上忍(@u_shinobu

  • この記事をはてなブックマークに追加
  • 本文印刷

 本連載「Apple Geeks」は、Apple製ハードウェア/ソフトウェア、またこれらの中核をなすOS X/iOSに関する解説を、余すことなくお贈りする連載です(連載目次はこちら)。

 UNIX使い向けを始め、Apple関連テクノロジー情報を知りつくしたいユーザーに役立つ情報を提供します。

 Apple Watch向け開発環境「WatchKit」がついに公開された。iOS 8.2 SDKのベータ版とともに配布され、iOSデベロッパープログラムへの加入が利用の条件となる。関連資料も多数公開されているが、その多くはNDA対象であり本稿では触れることができない。

Apple初のウェアラブルデバイス「Apple Watch」。2015年初頭の発売が見込まれるApple Watchの発売に先立ち、アプリ開発フレームワーク「WatchKit」の提供が開始された

 しかし、WatchKit公式サイトにはプログラミングガイドラインやヒューマンインターフェースガイドラインが一般ユーザー向けに(ログイン不要な領域で)公開されている。この資料だけでも、Apple Watch(のアプリ)がどのようなものか、ある程度見通すことは可能だ。今回は、開発者登録なしに裏付けをとれる範囲内で、WatchKitとApple Watchの姿を見てみよう。

アプリ本体はiPhone上にある

 今回公開されたWatchKitでは、インタラクティブな操作性を備える「Watch App」と、iOSアプリから受信した情報をタイムリーに表示する「Glance」、通知を表示する「Notification」の3種類のソフトウェアを開発できる。そのうちGlanceとNotificationsは"親機(iPhone)の情報を表示するだけ"に近く、独自の機能を持つことは想定されていない。いわゆる"Apple Watchアプリ"を指すのは、最初に挙げたWatch Appだ。

WatchKitで開発可能なソフトウェアは3種類、そのうち「Watch App」がApple Watch用アプリのメインストリームになる

 Watch Appは、簡単にいえば「iOSアプリと連係動作するクライアント」であり、単体での動作は考慮されていない。その仕組みを解くキーワードが、iOS 8およびOS X Yosemiteから導入された「機能拡張(App Extension)」だ。

 機能拡張とは、アプリケーション間におけるデータ連係のポリシーであり、API(NSExtension)として定義されている。この機能に対応するアプリは、バンドル内部に収められた機能拡張モジュール(*.appex)により、他のアプリケーションや通知センターなどのシステムプロセスと連係を実現する。

 機能拡張に対応したアプリは、ホーム画面で見るかぎり他のアプリと見分けがつかない。単独動作も可能だが、モジュールで定義した機能を他のアプリから呼び出せることがポイントだ。iOSアプリの場合、Safariに表示されたページをEvernoteでノートに貼り付ける(この場合Evernoteアプリに収められた機能拡張モジュールを呼び出す)、といった使い方が典型例として挙げられる。

 Watch Appも基本的な構造は同じだが、Watch App側にアプリの主機能を提供する実行部分がないことが、前述したiOSアプリとの違いだ。Watch AppはiOSアプリと通信するクライアントとしての機能が大半で、ボタンやアイコンといったリソースは独自に持つが、演算などの処理はiOSアプリ側で行う。たとえるなら、iOSアプリの結果を受け取り独自の流儀で表示する「シンクライアント」とでもいえるだろうか。

前へ 1 2 次へ

この連載の記事

ASCII.jp RSS2.0 配信中