![Page 1: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/1.jpg)
© 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
App Frameworks #WWDC16
Session 225
Extending Your Apps with SiriKit
Vineet Khosla SiriKit EngineeringDiana Huang SiriKit EngineeringScott Andrus SiriKit Engineering
![Page 2: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/2.jpg)
Adding SiriKit
Intents Extension AppIntents UI Extension
![Page 3: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/3.jpg)
Adding SiriKit
Intents Extension AppIntents UI Extension
Confirm HandleResolve
![Page 4: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/4.jpg)
Agenda
Preparing to adopt SiriKit
![Page 5: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/5.jpg)
Agenda
Preparing to adopt SiriKitAdding your first Intents extension
![Page 6: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/6.jpg)
Agenda
Preparing to adopt SiriKitAdding your first Intents extensionProviding a user interface in Siri
![Page 7: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/7.jpg)
UnicornChat
![Page 8: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/8.jpg)
Preparing to Adopt SiriKit
![Page 9: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/9.jpg)
Preparing to Adopt SiriKit
![Page 10: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/10.jpg)
Preparing to Adopt SiriKit
Embedded frameworks
![Page 11: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/11.jpg)
Preparing to Adopt SiriKit
Embedded frameworksUnit tests
![Page 12: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/12.jpg)
Preparing to Adopt SiriKit
Embedded frameworksUnit testsArchitecting your extensions
![Page 13: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/13.jpg)
Embedded frameworksPreparing to Adopt SiriKit
![Page 14: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/14.jpg)
Embedded frameworksPreparing to Adopt SiriKit
Networking
![Page 15: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/15.jpg)
Embedded frameworksPreparing to Adopt SiriKit
NetworkingData model
![Page 16: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/16.jpg)
Embedded frameworksPreparing to Adopt SiriKit
NetworkingData modelDecision-making logic
![Page 17: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/17.jpg)
Embedded frameworksPreparing to Adopt SiriKit
NetworkingData modelDecision-making logicUser interfaces
![Page 18: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/18.jpg)
Embedded frameworksPreparing to Adopt SiriKit
NetworkingData modelDecision-making logicUser interfaces
![Page 19: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/19.jpg)
Embedded frameworksPreparing to Adopt SiriKit
App Extension Best Practices WWDC 2015
NetworkingData modelDecision-making logicUser interfaces
![Page 20: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/20.jpg)
Unit testsPreparing to Adopt SiriKit
![Page 21: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/21.jpg)
Unit testsPreparing to Adopt SiriKit
Mock intents
![Page 22: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/22.jpg)
Unit testsPreparing to Adopt SiriKit
Mock intentsMake sure your app responds appropriately
![Page 23: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/23.jpg)
Architecting your extensionsPreparing to Adopt SiriKit
SendMessageIntent
StartAudioCallIntent
StartVideoCallIntent
![Page 24: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/24.jpg)
Architecting your extensionsPreparing to Adopt SiriKit
SendMessageIntent
StartAudioCallIntent
StartVideoCallIntent
![Page 25: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/25.jpg)
Architecting your extensionsPreparing to Adopt SiriKit
SendMessageIntent
StartAudioCallIntent
StartVideoCallIntent
![Page 26: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/26.jpg)
Architecting your extensionsPreparing to Adopt SiriKit
SendMessageIntent
StartAudioCallIntent
StartVideoCallIntent
![Page 27: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/27.jpg)
Adding Your First Intents Extension
Diana Huang SiriKit Engineering
![Page 28: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/28.jpg)
Getting Started
![Page 29: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/29.jpg)
Getting Started
Add extension target
![Page 30: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/30.jpg)
Getting Started
Add extension targetConfigure Info.plist
![Page 31: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/31.jpg)
Getting Started
Add extension targetConfigure Info.plistModify principal class
![Page 32: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/32.jpg)
Adding an extension target Intents Extension
![Page 33: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/33.jpg)
Adding an extension target Intents Extension
![Page 34: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/34.jpg)
Adding an extension target Intents Extension
![Page 35: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/35.jpg)
Info.plistIntents Extension
![Page 36: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/36.jpg)
Info.plistIntents Extension
Info.plist
IntentsSupported IntentsRestrictedWhileLocked
NSExtension
NSExtensionAttributes
![Page 37: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/37.jpg)
Info.plistIntents Extension
Info.plist
IntentsSupported IntentsRestrictedWhileLocked
NSExtension
NSExtensionAttributes
IntentsSupported
![Page 38: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/38.jpg)
Info.plistIntents Extension
Info.plist
IntentsSupported IntentsRestrictedWhileLocked
NSExtension
NSExtensionAttributes
IntentsRestrictedWhileLocked
![Page 39: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/39.jpg)
Principal classIntents Extension
![Page 40: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/40.jpg)
Principal classIntents Extension
Subclass of INExtension
![Page 41: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/41.jpg)
Principal classIntents Extension
Subclass of INExtensionINIntentHandlerProviding
![Page 42: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/42.jpg)
Principal classIntents Extension
Subclass of INExtensionINIntentHandlerProviding• handlerForIntent
![Page 43: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/43.jpg)
Principal classIntents Extension
Subclass of INExtensionINIntentHandlerProviding• handlerForIntent• handler class must conform to specific intent handling protocol
![Page 44: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/44.jpg)
DemoCreating my first Intents extension
![Page 45: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/45.jpg)
ResolveResolve, Confirm, Handle
![Page 46: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/46.jpg)
ResolveResolve, Confirm, Handle
Validate and clarify parameters
![Page 47: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/47.jpg)
ResolveResolve, Confirm, Handle
Validate and clarify parametersImplement it if you might need Siri to help ask users
![Page 48: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/48.jpg)
ResolveResolve, Confirm, Handle
![Page 49: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/49.jpg)
ResolveResolve, Confirm, Handle
recipients
![Page 50: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/50.jpg)
ResolveResolve, Confirm, Handle
Contact search recipients
![Page 51: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/51.jpg)
ResolveResolve, Confirm, Handle
Contact search• Exactly one match
recipients
![Page 52: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/52.jpg)
ResolveResolve, Confirm, Handle
Contact search• Exactly one match• Two or more matches
recipients
![Page 53: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/53.jpg)
ResolveResolve, Confirm, Handle
Contact search• Exactly one match• Two or more matches• No match
recipients
![Page 54: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/54.jpg)
ResolveResolve, Confirm, Handle
Contact search• Exactly one match• Two or more matches• No match
recipientsResolve
![Page 55: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/55.jpg)
ResolveResolve, Confirm, Handle
recipientsResolve
![Page 56: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/56.jpg)
ResolveResolve, Confirm, Handle
Contact search recipientsResolve
![Page 57: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/57.jpg)
ResolveResolve, Confirm, Handle
Contact search recipientsResolve content
![Page 58: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/58.jpg)
ResolveResolve, Confirm, Handle
Contact searchNeed a value to proceed
recipientsResolve content
![Page 59: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/59.jpg)
ConfirmResolve, Confirm, Handle
recipientsResolve content
![Page 60: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/60.jpg)
ConfirmResolve, Confirm, Handle
Confirm
recipientsResolve content
![Page 61: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/61.jpg)
ConfirmResolve, Confirm, Handle
Dry run• Tell Siri how it went
Confirm
recipientsResolve content
![Page 62: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/62.jpg)
ConfirmResolve, Confirm, Handle
Dry run• Tell Siri how it went
Confirm authenticated?
recipientsResolve content
![Page 63: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/63.jpg)
HandleResolve, Confirm, Handle
Just handle it!• Again, tell Siri how it went
Confirm authenticated?
Handle
recipientsResolve content
![Page 64: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/64.jpg)
DemoFilling in my app logic
![Page 65: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/65.jpg)
Resume state in your appNSUserActivity
![Page 66: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/66.jpg)
Resume state in your appNSUserActivity
Siri creates one by default
![Page 67: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/67.jpg)
Resume state in your appNSUserActivity
Siri creates one by default• ActivityType is intent class name
![Page 68: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/68.jpg)
Resume state in your appNSUserActivity
Siri creates one by default• ActivityType is intent class name
You can provide one to pass custom data
![Page 69: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/69.jpg)
Resume state in your appNSUserActivity
Siri creates one by default• ActivityType is intent class name
You can provide one to pass custom dataINInteraction
![Page 70: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/70.jpg)
DemoProviding my own NSUserActivity
![Page 71: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/71.jpg)
User-Specific Vocabulary
![Page 72: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/72.jpg)
User-Specific Vocabulary
Phrases unique to your app and user
![Page 73: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/73.jpg)
User-Specific Vocabulary
Phrases unique to your app and user• e.g. contact names
![Page 74: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/74.jpg)
User-Specific Vocabulary
Phrases unique to your app and user• e.g. contact names
Help Siri understand what users mean
![Page 75: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/75.jpg)
User-Specific Vocabulary
Phrases unique to your app and user• e.g. contact names
Help Siri understand what users meanINVocabulary API call from main app
![Page 76: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/76.jpg)
User-Specific Vocabulary
Phrases unique to your app and user• e.g. contact names
Help Siri understand what users meanINVocabulary API call from main app• NOT your extension
![Page 77: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/77.jpg)
// User-Specific Vocabulary - UnicornChat
class UCAddressBookManager {
// This method is called whenever there is a contact change
func updateSiriKnowledgeOfContacts() {
// provide the updated list of favorites' unicorn names to Siri
var unicornNames = OrderedSet(array: self.sortedFavoriteUnicornNames)
INVocabulary.shared().setVocabularyStrings(unicornNames, of:
INVocabularyStringType.contactName)
}
…
}
![Page 78: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/78.jpg)
// User-Specific Vocabulary - UnicornChat
class UCAddressBookManager {
// This method is called whenever there is a contact change
func updateSiriKnowledgeOfContacts() {
// provide the updated list of favorites' unicorn names to Siri
var unicornNames = OrderedSet(array: self.sortedFavoriteUnicornNames)
INVocabulary.shared().setVocabularyStrings(unicornNames, of:
INVocabularyStringType.contactName)
}
…
}
![Page 79: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/79.jpg)
// User-Specific Vocabulary - UnicornChat
class UCAddressBookManager {
// This method is called whenever there is a contact change
func updateSiriKnowledgeOfContacts() {
// provide the updated list of favorites' unicorn names to Siri
var unicornNames = OrderedSet(array: self.sortedFavoriteUnicornNames)
INVocabulary.shared().setVocabularyStrings(unicornNames, of:
INVocabularyStringType.contactName)
}
…
}
![Page 80: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/80.jpg)
// User-Specific Vocabulary - UnicornChat
class UCAddressBookManager {
// This method is called whenever there is a contact change
func updateSiriKnowledgeOfContacts() {
// provide the updated list of favorites' unicorn names to Siri
DispatchQueue(label: "UCSiriVocabulary").asynchronously(execute: { () -> Void in
var unicornNames = OrderedSet(array: self.sortedFavoriteUnicornNames)
INVocabulary.shared().setVocabularyStrings(unicornNames, of:
INVocabularyStringType.contactName)
})
}
…
}
![Page 81: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/81.jpg)
// User-Specific Vocabulary - UnicornChat
class UCAddressBookManager {
// This method is called whenever there is a contact change
func updateSiriKnowledgeOfContacts() {
// provide the updated list of favorites' unicorn names to Siri
DispatchQueue(label: "UCSiriVocabulary").asynchronously(execute: { () -> Void in
var unicornNames = OrderedSet(array: self.sortedFavoriteUnicornNames)
INVocabulary.shared().setVocabularyStrings(unicornNames, of:
INVocabularyStringType.contactName)
})
}
…
}
![Page 82: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/82.jpg)
// User-Specific Vocabulary - UnicornChat
class UCAddressBookManager {
// This method is called whenever there is a contact change
func updateSiriKnowledgeOfContacts() {
// provide the updated list of favorites' unicorn names to Siri
DispatchQueue(label: "UCSiriVocabulary").asynchronously(execute: { () -> Void in
var unicornNames = OrderedSet(array: self.sortedFavoriteUnicornNames)
INVocabulary.shared().setVocabularyStrings(unicornNames, of:
INVocabularyStringType.contactName)
})
}
…
}
![Page 83: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/83.jpg)
![Page 84: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/84.jpg)
Providing a User Interface with SiriKit
Scott Andrus SiriKit Engineering
![Page 85: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/85.jpg)
UI Extensions Increase Your App’s Impact
![Page 86: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/86.jpg)
UI Extensions Increase Your App’s Impact
Your view alongside Siri
![Page 87: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/87.jpg)
UI Extensions Increase Your App’s Impact
Your view alongside SiriExperiences unique to your application
![Page 88: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/88.jpg)
UI Extensions Increase Your App’s Impact
Your view alongside SiriExperiences unique to your applicationUser-specific customization
![Page 89: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/89.jpg)
UI Extensions Increase Your App’s Impact
Your view alongside SiriExperiences unique to your applicationUser-specific customizationInformation Siri might not otherwise show
![Page 90: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/90.jpg)
UI Extensions Increase Your App’s Impact
Your view alongside SiriExperiences unique to your applicationUser-specific customizationInformation Siri might not otherwise show
![Page 91: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/91.jpg)
How to get startedAdd UI Extension Target to Xcode
![Page 92: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/92.jpg)
Add Intents UI Extension target
How to get startedAdd UI Extension Target to Xcode
![Page 93: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/93.jpg)
Add Intents UI Extension targetEmbed in application
How to get startedAdd UI Extension Target to Xcode
![Page 94: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/94.jpg)
Info.plist
NSExtension
NSExtensionAttributes
Info.plistIntents UI Extension
IntentsSupported
![Page 95: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/95.jpg)
Info.plist
NSExtension
NSExtensionAttributes
Info.plistIntents UI Extension
IntentsSupported
![Page 96: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/96.jpg)
Siri
![Page 97: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/97.jpg)
Siri
configure(with interaction:...)
![Page 98: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/98.jpg)
UI extension
Siri
configure(with interaction:...)
![Page 99: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/99.jpg)
UI extension
Siri UIViewController : INUIHostedViewControlling
configure(with interaction:...)
![Page 100: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/100.jpg)
UI extensionINInteractionSiri UIViewController :
INUIHostedViewControllingconfigure(with interaction:...)
![Page 101: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/101.jpg)
INIntentHandlingStatus
INIntentResponse
INIntent
Breaking it downINInteraction
INInteraction
![Page 102: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/102.jpg)
INIntentHandlingStatus
INIntentResponse
INIntent
Breaking it downINInteraction
The handled (or to-be-handled) INIntent
INInteraction
![Page 103: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/103.jpg)
INIntentHandlingStatus
INIntentResponse
INIntent
Breaking it downINInteraction
The handled (or to-be-handled) INIntentThe provided INIntentResponse
INInteraction
![Page 104: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/104.jpg)
INIntentHandlingStatus
INIntentResponse
INIntent
Breaking it downINInteraction
The handled (or to-be-handled) INIntentThe provided INIntentResponseINIntentHandlingStatus INInteraction
![Page 105: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/105.jpg)
Implementing Your View Controller
![Page 106: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/106.jpg)
Implementing Your View Controller
Principal class
![Page 107: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/107.jpg)
Implementing Your View Controller
Principal classSubclass of UIViewController
![Page 108: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/108.jpg)
Implementing Your View Controller
Principal classSubclass of UIViewControllerConfigure with interaction
![Page 109: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/109.jpg)
Implementing Your View Controller
Principal classSubclass of UIViewControllerConfigure with interactionProvided view context
![Page 110: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/110.jpg)
Implementing Your View Controller
Principal classSubclass of UIViewControllerConfigure with interactionProvided view context
![Page 111: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/111.jpg)
Implementing Your View Controller
Principal classSubclass of UIViewControllerConfigure with interactionProvided view context
![Page 112: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/112.jpg)
Implementing Your View Controller
Principal classSubclass of UIViewControllerConfigure with interactionProvided view contextDesired size in the completion
![Page 113: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/113.jpg)
DemoBuilding a SiriKit UI extension
![Page 114: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/114.jpg)
![Page 115: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/115.jpg)
Siri Gives You Override Control
![Page 116: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/116.jpg)
Siri Gives You Override Control
Implement INUIHostedViewSiriProviding
![Page 117: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/117.jpg)
Siri Gives You Override Control
Implement INUIHostedViewSiriProvidingProperties for displaying messages and maps
![Page 118: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/118.jpg)
Siri Gives You Override Control
Implement INUIHostedViewSiriProvidingProperties for displaying messages and mapsOpt-in to displaying a particular interface
![Page 119: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/119.jpg)
Siri Gives You Override Control
Implement INUIHostedViewSiriProvidingProperties for displaying messages and mapsOpt-in to displaying a particular interfaceSiri will accommodate your view’s content
![Page 120: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/120.jpg)
}
func configure(with interaction: INInteraction!, context: INUIHostedViewContext,
completion: ((CGSize) -> Void)!) {
// Configure your view
completion(self.extensionContext!.hostedViewMaximumAllowedSize)
}
class IntentViewController: UIViewController, INUIHostedViewControlling,
![Page 121: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/121.jpg)
INUIHostedViewSiriProviding {
var displaysMessage: Bool {
return true
}
}
func configure(with interaction: INInteraction!, context: INUIHostedViewContext,
completion: ((CGSize) -> Void)!) {
// Configure your view
completion(self.extensionContext!.hostedViewMaximumAllowedSize)
}
class IntentViewController: UIViewController, INUIHostedViewControlling,
![Page 122: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/122.jpg)
INUIHostedViewSiriProviding {
var displaysMessage: Bool {
return true
}
}
func configure(with interaction: INInteraction!, context: INUIHostedViewContext,
completion: ((CGSize) -> Void)!) {
// Configure your view
completion(self.extensionContext!.hostedViewMaximumAllowedSize)
}
class IntentViewController: UIViewController, INUIHostedViewControlling,
![Page 123: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/123.jpg)
INUIHostedViewSiriProviding {
var displaysMessage: Bool {
return true
}
}
func configure(with interaction: INInteraction!, context: INUIHostedViewContext,
completion: ((CGSize) -> Void)!) {
// Configure your view
completion(self.extensionContext!.hostedViewMaximumAllowedSize)
}
class IntentViewController: UIViewController, INUIHostedViewControlling,
![Page 124: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/124.jpg)
DemoTelling Siri about our interface
![Page 125: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/125.jpg)
![Page 126: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/126.jpg)
![Page 127: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/127.jpg)
Considerations
![Page 128: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/128.jpg)
Considerations
Be memory conscious
![Page 129: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/129.jpg)
Considerations
Be memory consciousMinimum and maximum view sizes
![Page 130: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/130.jpg)
Considerations
Be memory consciousMinimum and maximum view sizesFlexible and adaptive layout patterns
![Page 131: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/131.jpg)
Summary
![Page 132: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/132.jpg)
Summary
Prepare to adopt SiriKit
![Page 133: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/133.jpg)
Summary
Prepare to adopt SiriKitAdd your first Intents extension
![Page 134: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/134.jpg)
Summary
Prepare to adopt SiriKitAdd your first Intents extensionProvide a user interface in Siri
![Page 135: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/135.jpg)
More Information
https://developer.apple.com/wwdc16/225
![Page 136: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/136.jpg)
Related Sessions
Introducing SiriKit Presidio Wednesday 5:00PM
App Extension Best Practices WWDC 2015
![Page 137: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/137.jpg)
Labs
SiriKit Lab Frameworks Lab C Thursday 3:00PM
SiriKit Lab Frameworks Lab B Friday 9:00AM
![Page 138: 225 Extending Your Apps with SiriKit 05 FINAL · 2016-07-08 · Session 225 Extending Your Apps with SiriKit Vineet Khosla SiriKit Engineering Diana Huang SiriKit Engineering](https://reader030.vdocuments.us/reader030/viewer/2022041017/5eca3e92ce74ca60fc41cb04/html5/thumbnails/138.jpg)