WWDC Quick Look 💓 By SwiftGGTeam
Create quick interactions with Shortcuts on watchOS

Create quick interactions with Shortcuts on watchOS

元の動画を見る

ハイライト

Apple は、watchOS 7 の Apple Watch にショートカット アプリとコンプリケーション エントリを導入し、アプリのインテント、NSUserActivity、およびリモート実行によって、ショートカットがウォッチ上でローカルに実行されるか、ペアリングされた iPhone 上で実行されるかをどのように決定するかについて説明しています。

主要内容

iPhone のショートカットの多くは、時計に適用するとさらに厳しい問題に直面します。ユーザーは手首を上げてクリックするだけで、意図したアクションが即座に完了します。このエントリは、ショートカット アプリまたはウォッチフェイスのコンプリケーションから取得される可能性があります。 iPhone アプリを開いたり、長いネットワークジャンプを待ったり、別のインターフェイスを追加したりする必要があるプロセスは、面倒に思えます。

watchOS 7ではまず入り口が完成します。 Apple Watchにショートカットアプリが登場。ユーザーは、iCloud を介してショートカットを同期したり、Apple Watch のコレクションを整理したり、時計上のショートカットで質問に答えたりすることができます。 2 つの新しいエントリもウォッチフェイスに追加されました。1 つのコンプリケーションではショートカット アプリを開くことができ、もう 1 つのコンプリケーションではショートカットを直接実行できます。

開発者が対処しなければならないのは、実行パスです。NSUserActivitywatchOS アプリを開くにはショートカットを入力する必要があります。アプリがウォッチ上にない場合、操作は失敗します。インテントに基づくショートカットはより柔軟です。watchOS Intents 拡張機能がある場合、それはウォッチ上でローカルに実行され、watchOS Intents 拡張機能がない場合、リモート実行のためにペアリングされた iPhone にインテントを送り返すことができます。

このセッションは、ウォッチ上のショートカットを作成してエラーを発生させにくく、待ち時間を短縮することに焦点を当てています。最適なエクスペリエンスは、同じアプリのインテントまたはユーザー アクティビティを watchOS アプリで処理できるようにすることです。一歩下がって、開けないモバイル アプリにユーザーが誘導されることを避けるために、インテントをバックグラウンドで完了させます。

詳細

watchOS 7 は、ウォッチ エントリをショートカットに追加します (00:55)

スピーカーは、新しい watchOS 7 ショートカット アプリを披露することから始まります。ユーザーは iPhone 上でショートカットを設定し、時計に適したアイテムを Apple Watch コレクションに追加し、iCloud 経由で時計に同期できます。ショートカット 質問する必要がある場合、ユーザーは時計のショートカット アプリ内で直接答えることができます。

watchOS 7 上的 Shortcuts 入口:
- Shortcuts app 运行已同步的 shortcut
- Apple Watch collection 决定哪些 shortcut 同步到手表
- inline question 让用户在手表内回答参数
- complication 打开 Shortcuts app 或直接运行某个 shortcut

キーポイント:

  • Apple Watch コレクションは、ユーザーが同期範囲を決定する場所です。すべての iPhone ショートカットが自動的に監視エントリになるわけではありません。
  • インライン質問は、ウォッチでのパラメータの入力をサポートしており、「カレンダー イベントの選択」や「ETA の送信確認」などの軽量のインタラクションに適しています。
  • 特定のショートカット コンプリケーションにより、高頻度のアクションをウォッチフェイスから開始できるため、ユーザーは最初にショートカット アプリに入る必要がありません。

NSUserActivityインテントの実行パスとは異なります(03:35)

ウォッチ上でショートカットが実行されると、システムはまずショートカットがどのように実装されているかを確認します。NSUserActivityアクティビティを処理するには、ショートカットを入力してアプリを開く必要があります。 watchOS アプリがウォッチにインストールされていない場合、開くターゲットがなく、システムにエラーが表示されます。インテントベースのショートカットは Intents 拡張機能によって処理されるため、ウォッチ上でローカルに実行されるか、ペアリングされた iPhone に戻って実行される可能性があります。

Apple Watch 运行 shortcut 的路由:
1. NSUserActivity shortcut
   - 打开 watchOS app 处理 activity
   - watchOS app 未安装 -> error

2. intent-based shortcut
   - watchOS Intents extension 支持该 intent -> 手表本地处理
   - 手表没有可用 extension -> 送到配对 iPhone 远程执行
   - iPhone handler 要求 continueInApp -> error

キーポイント:

  • NSUserActivityパスは watchOS アプリによって異なるため、iPhone アプリをリモートで開いてこの手順を完了することはできません。
  • インテントベースのショートカットの処理単位はインテント拡張機能であり、システムはウォッチとペアリングされた iPhone の間でルーティングできます。 -continueInAppプロセスがプッシュされてアプリが開きます。ウォッチはリモートでモバイル アプリを開くことができないため、間違ったノードに落ちてしまいます。

リモート実行も可能ですが、速度は遅くなります (05:23)

ウォッチがローカルでインテントを処理できない場合、システムはペアリングされた iPhone にインテントを送信します。この余分なホップにより、合計時間が増加します。講演者は、watch アプリがない場合でも、watchOS Intents 拡張機能がすべてのインテントをカバーしていない場合でも、システムはこれらのインテントベースのショートカットを実行できますが、そのエクスペリエンスはネイティブ実行よりも遅くなるだろうと明らかにしました。

适合远程执行的 intent checklist:
- shortcut 必须基于 intent
- 任务可以完全在后台完成
- handler 不返回 .continueInApp
- Xcode intent editor 中勾选 supports background execution

キーポイント:

  • リモート実行はインテントベースのショートカットのみをサポートしており、サポートされていませんNSUserActivityショートカットを入力します。
  • デバイス間で別のアプリを開くとウォッチ上の軽量プロセスが中断されるため、タスクはバックグラウンドで完了できる必要があります。 -supports background executionインタラクションの寄付で使用されるパラメーターの組み合わせを構成するには、デフォルトのパスを確認するだけではできません。

最良のエクスペリエンスは、拡張機能を watchOS にコンパイルすることです (06:10)

Apple が推奨するアプローチは簡単です。watchOS アプリを構築し、iOS アプリがすでにサポートしているのと同じユーザー アクティビティまたはインテントのセットをサポートするようにします。ショートカットに接続し始めたばかりのアプリの場合、講演者は、パラメーターをサポートし、より柔軟な API を備え、バックグラウンドで実行できるため、Intents フレームワークを使用することを推奨します。

watchOS 本地执行准备:
- 构建 watchOS app
- 支持 iOS app 已有的 user activities 或 intents
- 为 watchOS 创建单独的 Intents extension target
- 将 watchOS Intents extension 随 watchOS app 一起打包
- 尽量支持 iOS 上已有的全部 intents

キーポイント:

  • ローカルで実行すると、インテントを電話機に送り返すための余分な待ち時間が回避されます。
  • watchOS Intents 拡張機能は通常、Xcode の別のターゲットであり、iOS 拡張機能が自動的に Watch をカバーするとは想定できません。
  • iOS に複数のインテントがあり、ウォッチがそれらの一部のみをカバーする場合、カバーされていないインテントがリモートで実行される可能性があります。

Siri プレゼンテーションはダイアログ コピーに依存しています (08:55)

ショートカット アプリで実行できるショートカットは、Siri 音声経由で実行することもできます。ウォッチの制限は次のとおりです。watchOS はインテント UI 拡張機能をサポートしません。講演者はスープを注文する例を使って説明しました。デフォルトの確認プロンプトは、ユーザーに「スープを一杯注文してください」と指示するだけです。カスタム確認応答では、確認前に注文総額を追加できます。

Apple Watch 上的 Siri 呈现:
- Intents UI extensions 不支持 watchOS
- intent dialog 承担主要展示责任
- confirm() 返回 ready 时会得到默认确认提示
- custom confirm response 可以提供价格、状态、摘要等关键信息

キーポイント:

  • ウォッチ画面は小さく、音声ポータルが一般的に使用されます。ダイアログは、単に秘密のコピーライティングとして使用することはできません。
  • デフォルトの確認プロンプトの情報は限られています。購入、注文、またはメッセージの送信に関しては、ユーザーの確認に必要な特定の情報を追加する必要があります。
  • カスタム応答は、ユーザーが詳細を確認するためにアプリに戻ることを避けるために、タスクの意思決定に必要な情報を提供する必要があります。

Siri ダイヤルは適切なアクションを推奨し続けることができます (10:08)

講演者は、ショートカット アプリとコンプリケーションに加えて、Siri のウォッチフェイスについても考慮するよう開発者に思い出させました。特定のシナリオに適したショートカットは、Intents フレームワークの関連ショートカット API を通じて Siri ウォッチフェイスに提供され、システムが適切なタイミングでショートカットを表示できるようになります。

Siri watch face 适合的 shortcut:
- 和时间、位置、日程或习惯相关
- 用户能一眼判断是否要执行
- 执行后不需要长时间停留在 App 内
- 结果能用短 dialog 或简短界面确认

キーポイント:

  • Siri のウォッチフェイスは固定された入り口ではなく、「現時点で関連する」アクションを示すのに適しています。
  • アクションでパラメータを複数回入力する必要がある場合、または複雑なインターフェイスで結果を確認する必要がある場合、ダイヤルのタップ ショートカットとしては適していません。
  • まずインテントとダイアログのバックグラウンド実行を完了してから、システムにそれを推奨させることを検討してください。

重要ポイント

  • 何をすべきか: 頻度の高いアクションを、ダイヤル コンプリケーションから直接実行できるショートカットにします。 実行する価値がある理由: セッションでは特定のショートカットのコンプリケーションが表示され、ユーザーはダイヤルを 1 回タップするだけで ETA などの軽量タスクを送信できます。 開始方法: まず、パラメーターが少なく、結果が短く、失敗後の説明が簡単なアクションを選択します。ショートカットに接続した後、製品を Apple Watch コレクションとウォッチフェイスに追加するようにユーザーをガイドします。

  • 内容: watchOS Intents 拡張ターゲットを既存の SiriKit インテントに追加します。 実行する価値がある理由: 講演者は、最高のエクスペリエンスはウォッチがインテントをローカルで処理することで得られ、リモート実行では電話機にもう 1 ホップ送り返されることを繰り返し強調しました。 開始方法: iOS Intents 拡張機能でサポートされているインテントをリストし、最初に最もよく使用される 2 ~ 3 個のインテントを watchOS ターゲットに移動し、それらが watchOS アプリにパッケージ化されていることを確認します。

  • 内容: Watch アプリがまだないアクションのリモート実行レビューを行います。 実行する価値がある理由: リモート実行では、ネイティブ拡張機能を持たないインテントをペアリングされた iPhone 上で完了できますが、バックグラウンドで実行できるインテントベースのショートカットのみが対象となります。 起動方法: 各ハンドラーがリターンするかどうかを確認する.continueInApp, 次に、Xcode インテント エディターに移動し、寄付に実際に使用されるパラメーターの組み合わせのバックグラウンド実行をサポートしていることを確認します。

  • 対処法: ウォッチの Siri 確認テキストを書き換えます。 実行する価値がある理由: watchOS はインテント UI 拡張機能をサポートしておらず、ユーザーはタスクを確認するときに主にダイアログに依存しています。デフォルトreadyチップに価格、オブジェクト、またはステータスが不足している可能性があります。 開始方法: 外部に影響を与えるインテントごとにカスタムの確認応答を作成し、金額、対象ユーザー、コンテンツの送信、または予約時間を確認プロンプトに入力します。

  • やるべきこと: Apple Watch ショートカットのエラー ノードのリストを作成します。 実行する価値がある理由: セッションの実行図では、NSUserActivityウォッチ アプリがない、アプリを開く必要があるインテント、またはバックグラウンド実行が有効になっていない場合、エラーが発生します。 開始方法: 「watchOS アプリがあるかどうか」「watchOS Intents 拡張機能があるかどうか」「バックグラウンドで完了できるかどうか」「アプリ内で続行する必要があるかどうか」の 4 つの列に従って、各ショートカットを確認します。

関連セッション

コメント

GitHub Issues · utterances