
本連載「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」という拡張子の書類を発見できるはずだ。

この連載の記事
- 第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のライバルとなるか?
- この連載の一覧へ