Switch Log – SiriとNFCの注意事項

アプリでアイテムのログ一覧画面を表示中にSiriやオートメーションでモードを変更してもログ一覧には反映されません。
反映されるにはログ一覧画面を一度閉じてから再度表示し直す必要があります。
これは不具合ではなくiOSでアプリを作る時の制約によるものです。

制約については以下のようなイメージです

  1. アプリは専用のノートを持っています。他のアプリからは読み書きできないノートです。
  2. ログ一覧画面は、画面を表示する時にそのノートを見て一覧を表示しますが、表示した後はアプリが「見て!」と言うまでノートを見る事はありません。
  3. 「Siriに追加」する時、アプリはノートに書き込める特別なペンを作ってSiriに渡します。
  4. Siriは「Hey Siri!」されたら、そのペンを使ってノートに書き込みますが、ペンを使った事をアプリに知らせる事ができません。
  5. アプリはSiriがペンを使った事を知らないので、ログ一覧画面に「ノートを見て!」と言う事がないため、ログ一覧画面が再度ノートを見る(画面を表示するタイミング)まで一覧には反映されません。

技術的には…

Siriにアプリの機能を提供するIntentというものがあります。
SiriはそのIntentを使用してアプリの機能を実行しますが、実行した結果をアプリ本体に即時に確実に通知する方法が無いという制約があります。
この制約が無くアプリ本体に即時に確実に通知できればアプリ実行中でも一覧への反映が可能ですが、そのような仕組みになっていないためこのような仕様になっています。