はじめに
iOSアプリを作るとき、「ユーザーがどこからアプリの機能に触れるか」という点は、意識していないと意外とアプリ内画面遷移だけに閉じてしまいがちです。
しかし近年のiOSでは、
- Siri / Shortcuts
- Spotlight検索
- ウィジェットや通知
といったように、アプリを開かずに機能やデータへアクセスするための入口が数多く用意されています。
本記事では、これまで紹介してきた
App IntentsでShortcutsを作ってみた や
iOSアプリにSpotlight検索を追加してみた
といった内容も踏まえつつ、App Intents / Shortcuts / Spotlight を題材に、それぞれがどのような役割を持ち、どのように使い分けると整理しやすいのかをまとめます。
特定のAPIの使い方を解説するというよりは、「どの入口を、どんな目的で用意するのか」という設計視点での整理を主眼にしています。
iOSアプリにおける「入口」とは何か
ここで言う「入口」とは、ユーザーがアプリの機能やデータに最初に触れるきっかけのことを指します。
従来は、「アプリアイコンをタップ→起動後に画面を操作」という流れがほぼ唯一の入口でした。
一方、現在のiOSでは次のような入口が存在します。
- 音声(Siri)
- システム検索(Spotlight)
- 自動化(Shortcuts)
これらはすべて、アプリ外からアプリの一部機能へ直接アクセスする手段と捉えることができます。
App Intents の役割
App Intents は、アプリが提供する「操作」や「処理」を、システムに対して宣言的に公開する仕組みです。
特徴としては次の点が挙げられます。
- 処理単位で定義する(画面ではない)
- 引数を持てる
- Siri / Shortcuts / Spotlight などから共通で呼び出される
例えば「商品を追加する」「タイマーを開始する」といった明確な意味を持つ操作を定義するのに向いています。
App Intents 自体は入口というよりも、 入口から呼び出される「中核の処理」と考えると整理しやすくなります。
Shortcuts の役割
Shortcuts は、ユーザーが能動的に操作を組み立て、実行するための入口です。
Shortcuts の特徴は、
- ユーザーがフローを自由に組める
- 音声実行と相性が良い
- 繰り返し実行・自動化に向いている
といった点にあります。
App Intents を定義すると、 その処理を Shortcuts アプリ上で再利用できるようになります。
設計の観点では、
- 「何度も使われる操作か」
- 「ユーザーが自分で組み替えたいか」
といった条件を満たすものが Shortcuts 向きと言えます。
Spotlight の役割
Spotlight は、データを探すための入口としての役割を持っています。
Shortcuts が「操作の入口」だとすると、 Spotlight は「情報への入口」です。
特徴としては、
- アプリを起動しなくても検索できる
- データ単位で結果を表示できる
- タップ時にアプリへ遷移できる
といった点があります。
例えば、
- 登録済みの商品
- 作成したメモ
- 保存した設定
など、「名前を知っているデータ」を探す場面では、 Spotlight は非常に自然な入口になります。
3つの入口の役割を整理する
ここまでの内容を簡単に整理すると、次のように捉えることができます。
| 入口 | 主な役割 |
|---|---|
| App Intents | 処理そのものを定義する中核 |
| Shortcuts | 操作・自動化の入口 |
| Spotlight | データ検索の入口 |
重要なのは、これらは競合するものではなく、役割が異なるという点です。
同じ App Intent が、
- Shortcuts から呼ばれ
- Siri から実行され
- Spotlight 経由で起動される
という構成も自然に成立します。
「画面」を入口にしないという考え方
App Intents や Spotlight を扱っていると、 「どの画面を開くか」よりも先に、
- どの処理を行いたいのか
- どのデータに辿り着きたいのか
を考える場面が増えてきます。
これは、画面中心の設計から、機能・データ中心の設計へ視点が移ることを意味します。
結果として、
- アプリ外からの導線が整理される
- 状態駆動の設計と相性が良くなる
といった副次的な効果も得られます。
おわりに
App Intents / Shortcuts / Spotlight は、それぞれ別の仕組みですが、 共通して「アプリの外側から機能やデータに触れるための入口」を提供しています。
どれか一つを選ぶというよりも、
- 操作なのか
- 自動化なのか
- 検索なのか
という目的に応じて入口を設計することで、 アプリ全体の使い勝手を整理しやすくなります。
既存のアプリに対しても少しずつ取り入れられる考え方なので、 機能追加や改善のタイミングで、入口の設計を見直すきっかけとして役立ててもらえればと思います。








