WWDC2016で発表されたSiriKit。
これで、「Hey Siri〜」からガンガンに操作できるアプリを作れる!!!とテンション上げて触ってみた。
…ら、SiriKitの利用はかなり限られた状況に限るっぽいということがわかりました、というお話。
公式リソース
- SiriKitの紹介
- ドキュメント
- サンプルコード
-
UnicornChat
- Messageアプリ風のサンプル
-
IntentHandling
- Payment系と、Workout系の2つが入ったサンプル
-
UnicornChat
サンプル「UnicornChat」
アプリをそのまま立ち上げても真っ白な画面が見えるだけ
「UnicornChatでメッセージを送って」とSiriから話しかける
一番はじめは、Siriでこのアプリを使うことのを設定から許可するように求められる。
UnicornChatをONに。
もう一度「UnicornChatでメッセージを送って」
メッセージの内容と宛先を聞かれる。
「こんにちは」と言うと
本文として認識される。
Siriは宛先も聞いてきてるけど、いくつか試しても、UnicornChatに宛先は認識させられなかった。
メッセージが作成できたので、「送信」と伝える。(ボタンをタップしても可)
送信成功!(もちろん実際は送られない)
サンプル「IntentHandling」
PaymentsとWorkoutの2種類のアプリが入っているが、
Paymentsは日本じゃまだサポートしていないし、WorkoutはApple Watch持ってないしで試せず…。
SiriKitが現状サポートするドメイン
Add SiriKit support only if your app implements one of the following types of services:
(なんとなく訳)以下の種類のサービスを実装しているアプリだけSiriKitはサポートするよ
- Audio or video calling
- Messaging
- Payments
- Searching photos
- Workouts
- Ride booking
これが最初どういうことかわからなかったけど、どうやら
「〜でメッセージを送って。」
のようなSiriKitでフックできる構文は、予め用意されているパターン分だけしか使うことができず、
その用意されているものが上記の6ドメイン用だけの様子。
Intents Domainsに利用できるドメインと、使えるIntentの一覧があり、
Messagingだと
- Send a message
- Search for messages
Photo Searchだと
- Search for photos
- Play a photo slideshow
など。(それぞれのIntentで、どういう言い方をすればいいのかはどこに書いてあるんだろうか…)
独自にIntentを追加したりはできない
そして残念ながら、NSIntentのAPIドキュメントにバッチリ
You do not create instances of this class directly or implement your own custom subclasses.
(なんとなく訳)このクラスを直接使ったり、独自にサブクラスを作ったりしたらダメだよ
と書いてあることから、自分でカスタムのドメインを追加するようなことはできない模様。
ちょっとそういうことができそうなドキュメントもあるけど、中身を読むと、どうやら単語レベルなら追加できるよ、というものっぽい。
結論
もっと自由にSiriと連携できると思ってたら超限定的だった…
サポートされる6タイプに該当するアプリじゃないと今回のSiriKitの発表はまったく関係なかったという結論で非常に残念。
今後、もっと他のドメインが追加されたり、なにより独自にカスタム構文追加できるようになることを切に期待。
もしくはドキュメント読み込み不足で、実はできますとかあったりしないだろうか。