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