能登 要

札幌在住のiOSアプリ開発者。SwiftUI により分割されたデバイス間を縦横にやりとりできる考え方に転換しています。

iOSアプリ開発者。2009年のiPhoneアプリ開発開始時期から活動。開発言語のアップデートの中でSwiftUIおよび周辺技術に着目中。

私は最近 家で料理を始めました “レシピアシスタント”という お気に入りのレシピを探せる アプリケーションを使い料理に取り組んでいます。

-by Appleエンジニアのローマン

声に出して読みたいWWDC2020③

Empower your intents - WWDC 2020 - Videos - Apple Developer

iOS14でのインテント機能強化についてのセッション。自炊の際にレシピアプリを使っています、という一見変展つもないセッション中のフレーズである。

セッションに具体性を持たせるための状況説明なのだがアプリ開発者以外がフレーズと映像も含めて見るとレシピアプリに掲載されている内容が3件しか見当たらず自炊にしてもレパートリーに欠くのではないかと無用の心配を抱かせるだろう。

セッション中のインテントはアプリのショートカットをOSを介して提供する機能でありSiriKit( 音声認識機能Siriにアクセスするためのフレームワーク)にインテントのUI部分が内包しているほど親和性があるよと、アピールしている。

Extensionが精神的な壁になっていないか?

インテント自体はExtensionとして提供されておりエクステンションとApp間でセッキュリティレベルが調整されている(できることが限定されている)のが、2010年後半から2020年に続くAppleの機能拡張の定石となっている。

iOS/macOS SDKではExtension が機能拡張の定石となっている都合、iOSアプリ開発者はExtension について慣れ親しんでいるというとそうでもない様で、要因としては、

  1. アプリに拡張機能を加えないのでExtension に関心がない
  2. 使用しているクラスプラットフォームでExtension をサポートしていない

2はアプリケーション開発が落ち着いたタイミングで注目されるクロスプラットフォーム環境、たとえばFlutterやReactNativeで実装されるアプリが注目されている。クラスプラットフォームは開発者のコミュニティ規模にもよるがアプリに比べて些細扱いされるExtention はサポート街となる場合が多い。

クラスプラットフォーム環境でサポートされていないからAppleが提供する各種機能に対応しないというのは、割り切りというよりかは惰性に近い気もする。ある機能を 動かすのに慣れ親しんだ言語でかかれていないから携わらないというのはモバイルアプリ開発における知見を狭めがちという気もする。

Extention に慣れ親しむメリットとは言うと、Apple WatchがExtensionで提供されるといった事例を考えみれば未知のデバイスをiPhoneのアプリインストールパッケージに便乗して未知のデバイスで動作するアプリを実装する機会が出てきた際に精神的な壁を取り払えていると言える。