このページの本文へ

前へ 1 2 3 次へ

Apple Geeks ― 第155回

iOS 8とOS X Yosemiteの「機能拡張」(App Extensions)を知る

2014年11月07日 23時00分更新

文● 海上忍(@u_shinobu

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

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

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

開発方面から見た「機能拡張」

 iOS 8で登場したアプリの「機能拡張」(App Extensions)。アプリ間連携とも呼ばれるこの機構は、アプリケーション間におけるデータ連係のポリシーを取り決め、さらにはAPI(NSExtension)を定義する。表面上は独立して動作するアプリケーション(***.app)だが、バンドル内部に収められた機能拡張モジュールにより、他のアプリケーションや通知センターといったシステムプロセスと連係を可能にする(関連リンク1関連リンク2)。

 これまでOSレベルでサポートされるアプリ間連携といえば、OS XにはNEXTSTEPの時代から伝わるNSService(サービスメニュー)が存在するが、iOSには移植されなかった。iOSではアプリ間連係の手段としてKeychainサービスやURLスキームが提供されてきたものの、データ量や連係相手に関する制約が多く、基本的にアプリはスタンドアローンだった。それが機能拡張により、写真やビデオなどさまざまなデータ/ファイルも扱えるようになったのだ。

 機能拡張はiOSのみならずOS Xにも提供され、扱うデータや機能の違いにより7種に分類される(表1)。OS XとiOSではソフトウェアに要求される処理や用途に違いがあるため、機能によって対応/非対応の違いはあるが、開発ノウハウやソースコードの共有が期待できる。

表1:機能拡張(App Extensions)の種類
名称 iOS OS X 表示される場所/主な機能
Today 通知センターの「今日」タブに表示(ウィジェット)
Share 「共有」ボタンに表示される項目
Action テキストや画像などコンテンツの処理
Photo Editing - 『写真』アプリ内で写真/ビデオを編集する
Finder Sync - フォルダの監視などFinderに独自機能を追加する
Document Provider - ファイルの受け渡しと保存場所の提供
Custom Keyboard - カスタマイズ版のソフトウェアキーボード

 iOSアプリでは見ることができないが、機能拡張を利用したOS Xアプリのバンドル内部を見ればその構造がわかる。Finderの「パッケージの内容を表示」メニューを使いバンドルを開いていけば、Contentsフォルダ以下にPluginフォルダが用意され、そこに「.appex」という拡張子の書類を発見できるはずだ。

「リマインダー」のバンドル内部に存在する機能拡張書類。拡張子は「.appex」で統一されている
Applicationsフォルダ以下を「.appex」で検索したところ、標準装備のアプリケーションでは「カレンダー」と「プレビュー」、「リマインダー」がヒットした

前へ 1 2 3 次へ

この連載の記事

ASCII.jp RSS2.0 配信中