
本連載「Apple Geeks」は、Apple製ハードウェア/ソフトウェア、またこれらの中核をなすOS X/iOSに関する解説を、余すことなくお贈りする連載です(連載目次はこちら)。
UNIX使い向けを始め、Apple関連テクノロジー情報を知りつくしたいユーザーに役立つ情報を提供します。
Apple Watch向け開発環境「WatchKit」がついに公開された。iOS 8.2 SDKのベータ版とともに配布され、iOSデベロッパープログラムへの加入が利用の条件となる。関連資料も多数公開されているが、その多くはNDA対象であり本稿では触れることができない。
しかし、WatchKit公式サイトにはプログラミングガイドラインやヒューマンインターフェースガイドラインが一般ユーザー向けに(ログイン不要な領域で)公開されている。この資料だけでも、Apple Watch(のアプリ)がどのようなものか、ある程度見通すことは可能だ。今回は、開発者登録なしに裏付けをとれる範囲内で、WatchKitとApple Watchの姿を見てみよう。
アプリ本体はiPhone上にある
今回公開されたWatchKitでは、インタラクティブな操作性を備える「Watch App」と、iOSアプリから受信した情報をタイムリーに表示する「Glance」、通知を表示する「Notification」の3種類のソフトウェアを開発できる。そのうちGlanceとNotificationsは"親機(iPhone)の情報を表示するだけ"に近く、独自の機能を持つことは想定されていない。いわゆる"Apple Watchアプリ"を指すのは、最初に挙げたWatch Appだ。
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アプリの結果を受け取り独自の流儀で表示する「シンクライアント」とでもいえるだろうか。

この連載の記事
- 第187回 NFCの世界を一変させる!? iOS 11「Core NFC」の提供開始が意味するもの
- 第186回 Appleと「4K HDR」 - iOS 11で写真/動画を変える「HEIF」と「HEVC」
- 第185回 iPhone 7搭載の「A10 Fusion」「W1」は何を変えるか
- 第184回 オープンソース化された「PowerShell」をMacで使う
- 第183回 アップル製デバイス連携の鍵、「Continuity」とは?
- 第182回 DCI-P3準拠へと歩むiPhone/iPad - WWDC基調講演で秘められた新技術は、ここにある(2)
- 第181回 WWDC基調講演で秘められた新技術は、ここにある(1)
- 第180回 WWDC直前、買い替え前にマイMacのココをチェック
- 第179回 私がiTunesを使わなくなった5つの理由
- 第178回 今あえてiPhone「Live Photos」を知る
- 第177回 「Windows Subsystem for Linux」はOS Xのライバルとなるか?
- この連載の一覧へ