SlideShare a Scribd company logo
Copyright © Up-frontier, Inc. All rights reserved.
SiriKitでできること
1
Copyright © Up-frontier, Inc. All rights reserved.
アジェンダ
• SiriKitの概要
• SiriKitの構成としくみ
• 実装してみる
2
Copyright © Up-frontier, Inc. All rights reserved.
アジェンダ
• SiriKitの概要
• SiriKitの構成としくみ
• 実装してみる
3
Copyright © Up-frontier, Inc. All rights reserved.
これまでのSiri
• デバイスごとに⼀⼈ずつSiriが内包されている
• Siriからアプリの操作が可能(Apple純正のみ)
• 「タイマーで3分」→ 時計アプリ
• 「明⽇の天気」→ 天気アプリ
• サードパーティ製のアプリは、Siriとは連携不可
4
Copyright © Up-frontier, Inc. All rights reserved.
これからのSiri
• サードパーティ製のアプリも、Siriと連携できる
ようになる
• Siriとアプリを連携させるためのものがSiriKit
• 本体アプリに対して、SiriKitのExtensionを追加
するイメージ
5
Copyright © Up-frontier, Inc. All rights reserved.
公式アプリは
もともと連携できていた
これまでのSiri
6
Copyright © Up-frontier, Inc. All rights reserved.
これからのSiri
7
公式アプリは
もともと連携できていた
サードパーティ製のアプリと
SiriをつなぐのがSiriKitの役割!
Copyright © Up-frontier, Inc. All rights reserved.
SiriKitが解釈できるドメイン
• VoIP Calling
• Messaging
• Payments
• Photos
• Workouts
• Ride Booking
8
• CarPlay
• Restaurant
Reservations
Copyright © Up-frontier, Inc. All rights reserved.
SiriKitが解釈できるドメイン
• VoIP Calling
• Messaging
• Payments
• Photos
• Workouts
• Ride Booking
9
• CarPlay
• Restaurant
Reservations
特定のベンダーのみに
解放されるらしい
(例) ⾃動⾞メーカーなど
Copyright © Up-frontier, Inc. All rights reserved.
SiriKitが解釈できるドメイン
• VoIP Calling
• Messaging
• Payments
• Photos
• Workouts
• Ride Booking
10
• CarPlay
• Restaurant
Reservations
• メッセージの送信
• 〇〇さんに「おはよう」
• メッセージの検索
• ▲▲からのメッセージを検索
Copyright © Up-frontier, Inc. All rights reserved.
思った以上に限定的
• 恩恵を受けることができるアプリ・サービス
は、今の所はかなり限られている
• 以下のようなことはできない
• カメラアプリで撮影
• オンデマンドアプリで動画を検索して再⽣
• 今後、利⽤可能な機能が増えることに期待
11
Copyright © Up-frontier, Inc. All rights reserved.
アジェンダ
• SiriKitの概要
• SiriKitの構成としくみ
• 実装してみる
12
Copyright © Up-frontier, Inc. All rights reserved.
SiriKitの構成
• SiriKitは、以下の2つのframeworkからなる
• Intents.framework
• IntentsUI.framework
• SiriKit.frameworkというものは存在しない
• ○○○Kitって⼀体…
13
Copyright © Up-frontier, Inc. All rights reserved.
Intents.framework
• ユーザの⾳声⼊⼒を受け取る
• ⾳声を解析し、Intentを⽣成してアプリに渡す
• 実装は必須
14
Copyright © Up-frontier, Inc. All rights reserved.
IntentsUI.framework
• SiriのUI上に表⽰するView関連のクラス
• カスタムUIを利⽤する場合に任意で実装する
• Apple「ちゃんと使うよね?」 チラッ
15
Copyright © Up-frontier, Inc. All rights reserved.
メッセージアプリの使い⽅
• 必要なワードを含んだ⽂章で話しかけること
で、メッセージ送信ができる
• メッセージの場合は「宛先」と「メッセージ」
16
• [アプリ名] で [宛先] に [メッセージ] と送って
• [メッセージ] を [宛先] に [アプリ名] で送って
Copyright © Up-frontier, Inc. All rights reserved.
アジェンダ
• SiriKitの概要
• SiriKitの構成としくみ
• 実装してみる
17
Copyright © Up-frontier, Inc. All rights reserved.
メッセージアプリ
• アプリを作る
• ターゲットの追加(Intent Extension)
• plistに必要事項を追記
• Extensionの実装
18
Copyright © Up-frontier, Inc. All rights reserved.
メッセージアプリ
• アプリを作る
• ターゲットの追加(Intent Extension)
• plistに必要事項を追記
• Extensionの実装
19
Copyright © Up-frontier, Inc. All rights reserved.
メッセージアプリ
• アプリを作る
• ターゲットの追加(Intent Extension)
• plistに必要事項を追記
• Extensionの実装
20
Copyright © Up-frontier, Inc. All rights reserved.
ターゲットの追加
• Intent Extension の
ターゲットを追加す
る
• Intent UI を同時に
追加することもでき
る
21
Copyright © Up-frontier, Inc. All rights reserved.
ターゲットの追加
• Intent Extension の
ターゲットを追加す
る
• Intent UI を同時に
追加することもでき
る
22
Copyright © Up-frontier, Inc. All rights reserved.
メッセージアプリ
• アプリを作る
• ターゲットの追加(Intent Extension)
• plistに必要事項を追記
• Extensionの実装
23
Copyright © Up-frontier, Inc. All rights reserved.
plistの説明
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>IntentsSupported</key>
<array>
<string>INSendMessageIntent</string>
</array>
<key>IntentsRestrictedWhileLocked</key>
<array>
<string>INSendMessageIntent</string>
</array>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.intents-service</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).IntentHandler</string>
</dict>
24
• サポートするIntentのタイプ
• 今回はSendMessageIntent
Copyright © Up-frontier, Inc. All rights reserved.
plistの説明
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>IntentsSupported</key>
<array>
<string>INSendMessageIntent</string>
</array>
<key>IntentsRestrictedWhileLocked</key>
<array>
<string>INSendMessageIntent</string>
</array>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.intents-service</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).IntentHandler</string>
</dict>
25
• プライバシーへの配慮
• デバイスロック中に利⽤させない
場合は、これを追記する
Copyright © Up-frontier, Inc. All rights reserved.
plistの説明
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>IntentsSupported</key>
<array>
<string>INSendMessageIntent</string>
</array>
<key>IntentsRestrictedWhileLocked</key>
<array>
<string>INSendMessageIntent</string>
</array>
</dict>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.intents-service</string>
<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).IntentHandler</string>
</dict>
26
Extensionを実装しているクラス
Copyright © Up-frontier, Inc. All rights reserved.
メッセージアプリ
• アプリを作る
• ターゲットの追加(Intent Extension)
• plistに必要事項を追記
• Extensionの実装
27
Copyright © Up-frontier, Inc. All rights reserved.
Extensionの実装
• Extensionの3ステップ
• Resolve
• Confirm
• Handle
28
Copyright © Up-frontier, Inc. All rights reserved.
Extensionの実装
• Extensionの3ステップ
• Resolve
• Confirm
• Handle
29
• ⼊⼒パラメータの解決
• ⼊⼒値のバリデーション
• ⾜りない場合はSiriが聞き返す
Copyright © Up-frontier, Inc. All rights reserved.
Extensionの実装
• Extensionの3ステップ
• Resolve
• Confirm
• Handle
30
• 最終確認
• タスク実⾏に向けた最終確認
• ビジネスロジック的なチェックなど
Copyright © Up-frontier, Inc. All rights reserved.
Extensionの実装
• Extensionの3ステップ
• Resolve
• Confirm
• Handle
31
• タスクの実⾏
• 実際の処理を⾏う
• メッセージの送信、検索など
Copyright © Up-frontier, Inc. All rights reserved.
tips
• 実機必須
• 恥ずかしがらずに堂々と
• Extension特有の「なぜか動かない」
32
Copyright © Up-frontier, Inc. All rights reserved.
まとめ
• つかえるDomainは6種類
• ⾳声は、SiriがIntentに変換して渡してくれる
• Resolve, Confirm, Handle の順でタスク実⾏
33

More Related Content

PDF
Speech Framework
PDF
第5回 デジタルガジェット祭り! スマートスピーカー特集(5)
PPTX
PPTX
PDF
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
PDF
Proactive Suggestions
PDF
AR開発高速化!「CFA」作りました!
PDF
Unity + iOS/Android VR ことはじめ
Speech Framework
第5回 デジタルガジェット祭り! スマートスピーカー特集(5)
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
Proactive Suggestions
AR開発高速化!「CFA」作りました!
Unity + iOS/Android VR ことはじめ

More from Gaprot (10)

PDF
1201 ギャップロ軍団企画書
PDF
New Notification API in iOS 10
PDF
iOS 10 new Camera
PDF
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
PDF
Aiマッシュアップ委員会 仕様説明資料
PDF
GoF のデザインパターンじゃないけど、よくあるパターン
PDF
Java の Collection 関連について整理してみました
PDF
Salmon Hunt
PDF
SONY Camera Remote API
PDF
「バグあるある」と「仕様変更あるある」一挙大放出SP!
1201 ギャップロ軍団企画書
New Notification API in iOS 10
iOS 10 new Camera
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
Aiマッシュアップ委員会 仕様説明資料
GoF のデザインパターンじゃないけど、よくあるパターン
Java の Collection 関連について整理してみました
Salmon Hunt
SONY Camera Remote API
「バグあるある」と「仕様変更あるある」一挙大放出SP!
Ad

SiriKit iOS10

  • 1. Copyright © Up-frontier, Inc. All rights reserved. SiriKitでできること 1
  • 2. Copyright © Up-frontier, Inc. All rights reserved. アジェンダ • SiriKitの概要 • SiriKitの構成としくみ • 実装してみる 2
  • 3. Copyright © Up-frontier, Inc. All rights reserved. アジェンダ • SiriKitの概要 • SiriKitの構成としくみ • 実装してみる 3
  • 4. Copyright © Up-frontier, Inc. All rights reserved. これまでのSiri • デバイスごとに⼀⼈ずつSiriが内包されている • Siriからアプリの操作が可能(Apple純正のみ) • 「タイマーで3分」→ 時計アプリ • 「明⽇の天気」→ 天気アプリ • サードパーティ製のアプリは、Siriとは連携不可 4
  • 5. Copyright © Up-frontier, Inc. All rights reserved. これからのSiri • サードパーティ製のアプリも、Siriと連携できる ようになる • Siriとアプリを連携させるためのものがSiriKit • 本体アプリに対して、SiriKitのExtensionを追加 するイメージ 5
  • 6. Copyright © Up-frontier, Inc. All rights reserved. 公式アプリは もともと連携できていた これまでのSiri 6
  • 7. Copyright © Up-frontier, Inc. All rights reserved. これからのSiri 7 公式アプリは もともと連携できていた サードパーティ製のアプリと SiriをつなぐのがSiriKitの役割!
  • 8. Copyright © Up-frontier, Inc. All rights reserved. SiriKitが解釈できるドメイン • VoIP Calling • Messaging • Payments • Photos • Workouts • Ride Booking 8 • CarPlay • Restaurant Reservations
  • 9. Copyright © Up-frontier, Inc. All rights reserved. SiriKitが解釈できるドメイン • VoIP Calling • Messaging • Payments • Photos • Workouts • Ride Booking 9 • CarPlay • Restaurant Reservations 特定のベンダーのみに 解放されるらしい (例) ⾃動⾞メーカーなど
  • 10. Copyright © Up-frontier, Inc. All rights reserved. SiriKitが解釈できるドメイン • VoIP Calling • Messaging • Payments • Photos • Workouts • Ride Booking 10 • CarPlay • Restaurant Reservations • メッセージの送信 • 〇〇さんに「おはよう」 • メッセージの検索 • ▲▲からのメッセージを検索
  • 11. Copyright © Up-frontier, Inc. All rights reserved. 思った以上に限定的 • 恩恵を受けることができるアプリ・サービス は、今の所はかなり限られている • 以下のようなことはできない • カメラアプリで撮影 • オンデマンドアプリで動画を検索して再⽣ • 今後、利⽤可能な機能が増えることに期待 11
  • 12. Copyright © Up-frontier, Inc. All rights reserved. アジェンダ • SiriKitの概要 • SiriKitの構成としくみ • 実装してみる 12
  • 13. Copyright © Up-frontier, Inc. All rights reserved. SiriKitの構成 • SiriKitは、以下の2つのframeworkからなる • Intents.framework • IntentsUI.framework • SiriKit.frameworkというものは存在しない • ○○○Kitって⼀体… 13
  • 14. Copyright © Up-frontier, Inc. All rights reserved. Intents.framework • ユーザの⾳声⼊⼒を受け取る • ⾳声を解析し、Intentを⽣成してアプリに渡す • 実装は必須 14
  • 15. Copyright © Up-frontier, Inc. All rights reserved. IntentsUI.framework • SiriのUI上に表⽰するView関連のクラス • カスタムUIを利⽤する場合に任意で実装する • Apple「ちゃんと使うよね?」 チラッ 15
  • 16. Copyright © Up-frontier, Inc. All rights reserved. メッセージアプリの使い⽅ • 必要なワードを含んだ⽂章で話しかけること で、メッセージ送信ができる • メッセージの場合は「宛先」と「メッセージ」 16 • [アプリ名] で [宛先] に [メッセージ] と送って • [メッセージ] を [宛先] に [アプリ名] で送って
  • 17. Copyright © Up-frontier, Inc. All rights reserved. アジェンダ • SiriKitの概要 • SiriKitの構成としくみ • 実装してみる 17
  • 18. Copyright © Up-frontier, Inc. All rights reserved. メッセージアプリ • アプリを作る • ターゲットの追加(Intent Extension) • plistに必要事項を追記 • Extensionの実装 18
  • 19. Copyright © Up-frontier, Inc. All rights reserved. メッセージアプリ • アプリを作る • ターゲットの追加(Intent Extension) • plistに必要事項を追記 • Extensionの実装 19
  • 20. Copyright © Up-frontier, Inc. All rights reserved. メッセージアプリ • アプリを作る • ターゲットの追加(Intent Extension) • plistに必要事項を追記 • Extensionの実装 20
  • 21. Copyright © Up-frontier, Inc. All rights reserved. ターゲットの追加 • Intent Extension の ターゲットを追加す る • Intent UI を同時に 追加することもでき る 21
  • 22. Copyright © Up-frontier, Inc. All rights reserved. ターゲットの追加 • Intent Extension の ターゲットを追加す る • Intent UI を同時に 追加することもでき る 22
  • 23. Copyright © Up-frontier, Inc. All rights reserved. メッセージアプリ • アプリを作る • ターゲットの追加(Intent Extension) • plistに必要事項を追記 • Extensionの実装 23
  • 24. Copyright © Up-frontier, Inc. All rights reserved. plistの説明 <dict> <key>NSExtensionAttributes</key> <dict> <key>IntentsSupported</key> <array> <string>INSendMessageIntent</string> </array> <key>IntentsRestrictedWhileLocked</key> <array> <string>INSendMessageIntent</string> </array> </dict> <key>NSExtensionPointIdentifier</key> <string>com.apple.intents-service</string> <key>NSExtensionPrincipalClass</key> <string>$(PRODUCT_MODULE_NAME).IntentHandler</string> </dict> 24 • サポートするIntentのタイプ • 今回はSendMessageIntent
  • 25. Copyright © Up-frontier, Inc. All rights reserved. plistの説明 <dict> <key>NSExtensionAttributes</key> <dict> <key>IntentsSupported</key> <array> <string>INSendMessageIntent</string> </array> <key>IntentsRestrictedWhileLocked</key> <array> <string>INSendMessageIntent</string> </array> </dict> <key>NSExtensionPointIdentifier</key> <string>com.apple.intents-service</string> <key>NSExtensionPrincipalClass</key> <string>$(PRODUCT_MODULE_NAME).IntentHandler</string> </dict> 25 • プライバシーへの配慮 • デバイスロック中に利⽤させない 場合は、これを追記する
  • 26. Copyright © Up-frontier, Inc. All rights reserved. plistの説明 <dict> <key>NSExtensionAttributes</key> <dict> <key>IntentsSupported</key> <array> <string>INSendMessageIntent</string> </array> <key>IntentsRestrictedWhileLocked</key> <array> <string>INSendMessageIntent</string> </array> </dict> <key>NSExtensionPointIdentifier</key> <string>com.apple.intents-service</string> <key>NSExtensionPrincipalClass</key> <string>$(PRODUCT_MODULE_NAME).IntentHandler</string> </dict> 26 Extensionを実装しているクラス
  • 27. Copyright © Up-frontier, Inc. All rights reserved. メッセージアプリ • アプリを作る • ターゲットの追加(Intent Extension) • plistに必要事項を追記 • Extensionの実装 27
  • 28. Copyright © Up-frontier, Inc. All rights reserved. Extensionの実装 • Extensionの3ステップ • Resolve • Confirm • Handle 28
  • 29. Copyright © Up-frontier, Inc. All rights reserved. Extensionの実装 • Extensionの3ステップ • Resolve • Confirm • Handle 29 • ⼊⼒パラメータの解決 • ⼊⼒値のバリデーション • ⾜りない場合はSiriが聞き返す
  • 30. Copyright © Up-frontier, Inc. All rights reserved. Extensionの実装 • Extensionの3ステップ • Resolve • Confirm • Handle 30 • 最終確認 • タスク実⾏に向けた最終確認 • ビジネスロジック的なチェックなど
  • 31. Copyright © Up-frontier, Inc. All rights reserved. Extensionの実装 • Extensionの3ステップ • Resolve • Confirm • Handle 31 • タスクの実⾏ • 実際の処理を⾏う • メッセージの送信、検索など
  • 32. Copyright © Up-frontier, Inc. All rights reserved. tips • 実機必須 • 恥ずかしがらずに堂々と • Extension特有の「なぜか動かない」 32
  • 33. Copyright © Up-frontier, Inc. All rights reserved. まとめ • つかえるDomainは6種類 • ⾳声は、SiriがIntentに変換して渡してくれる • Resolve, Confirm, Handle の順でタスク実⾏ 33