Top Banner
#WWDC17 © 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. José Angel Castillo Sanchez, SiriKit Engineering Rohit Dasari, SiriKit Engineering Making Great SiriKit Experiences Session 228 App Frameworks
170

•Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Jun 24, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

#WWDC17

© 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

José Angel Castillo Sanchez, SiriKit Engineering Rohit Dasari, SiriKit Engineering

•Making Great SiriKit Experiences • Session 228

App Frameworks

Page 2: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 3: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•Contact resolution •Security •Custom vocabulary •UI testing

Page 4: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•Contact resolution •Security •Custom vocabulary •UI testing

Page 5: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•Contact resolution •Security •Custom vocabulary •UI testing

Page 6: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•Contact resolution •Security •Custom vocabulary •UI testing

Page 7: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•Contact Resolution

Page 8: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

UnicornChat

Page 9: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 10: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 11: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

extension INPerson : INSpeakable { open var siriMatches: [INPerson]? { get } }

Contact Resolution INPerson.siriMatches

Page 12: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

extension INPerson : INSpeakable { open var siriMatches: [INPerson]? { get } }

Contact Resolution INPerson.siriMatches

Page 13: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“Text John hello on UnicornChat”

Page 14: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“Text John hello on UnicornChat”

Page 15: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“Text John hello on UnicornChat”Siri

Page 16: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“Text John hello on UnicornChat”

Application Extension

Siri

resolveRecipients

Page 17: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“Text John hello on UnicornChat”

Application Extension

Siri

resolveRecipients

INPerson Name: John Baily

INPerson Name: John Appleseed

Page 18: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 19: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“John Baily”“John Baily”

Application Extension

resolveRecipients

Page 20: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“John Baily”Siri

“John Baily”

Application Extension

resolveRecipients

Page 21: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“John Baily”

Application Extension

Siri

resolveRecipients

Page 22: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“John Baily”

Application Extension INPerson Name: John Baily

Siri

resolveRecipients

Page 23: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 24: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

But what if…

Page 25: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 26: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“John Baily”

Page 27: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“John Baily”

Page 28: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“John Baily”Siri

Page 29: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“John Baily”

Application Extension

Siri

resolveRecipients

Page 30: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“John Baily”

Application Extension INPerson Name: John Baily

Siri

resolveRecipients

Page 31: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“John Baily”

Application Extension INPerson Name: John Baily

Siri

resolveRecipients

work

mobile

home

Page 32: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 33: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“mobile”

Page 34: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“mobile”

Page 35: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“mobile”Siri

Page 36: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“mobile”

Application Extension

resolveRecipients

Siri

Page 37: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“mobile”

Application Extension

resolveRecipients

mobile

INPerson Name: John Baily

Siri

Page 38: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution INPerson.siriMatches

“mobile”

Application Extension

resolveRecipients

mobile

INPerson Name: John Baily

Siri

Page 39: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

func resolveRecipients(forSendMessage intent: INSendMessageIntent, with completion: @escaping ([INPersonResolutionResult]) -> Void) { guard let recipients = intent.recipients, !recipients.isEmpty else { completion([.needsValue()]) return } let results = recipients.map { recipient in database.resolvePerson(for: recipient.user) } completion(results) }

Page 40: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

func resolveRecipients(forSendMessage intent: INSendMessageIntent, with completion: @escaping ([INPersonResolutionResult]) -> Void) { guard let recipients = intent.recipients, !recipients.isEmpty else { completion([.needsValue()]) return } let results = recipients.map { recipient in database.resolvePerson(for: recipient.user) } completion(results) }

Page 41: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

func resolveRecipients(forSendMessage intent: INSendMessageIntent, with completion: @escaping ([INPersonResolutionResult]) -> Void) { guard let recipients = intent.recipients, !recipients.isEmpty else { completion([.needsValue()]) return } let results = recipients.map { recipient in database.resolvePerson(for: recipient.user) } completion(results) }

Page 42: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

func resolveRecipients(forSendMessage intent: INSendMessageIntent, with completion: @escaping ([INPersonResolutionResult]) -> Void) { guard let recipients = intent.recipients, !recipients.isEmpty else { completion([.needsValue()]) return } let results = recipients.map { recipient in database.resolvePerson(for: recipient.user) } completion(results) }

Page 43: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

func resolveRecipients(forSendMessage intent: INSendMessageIntent, with completion: @escaping ([INPersonResolutionResult]) -> Void) { guard let recipients = intent.recipients, !recipients.isEmpty else { completion([.needsValue()]) return } let results = recipients.map { recipient in database.resolvePerson(for: recipient.user) } completion(results) }

Page 44: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

func resolveRecipients(forSendMessage intent: INSendMessageIntent, with completion: @escaping ([INPersonResolutionResult]) -> Void) { guard let recipients = intent.recipients, !recipients.isEmpty else { completion([.needsValue()]) return } let results = recipients.map { recipient in database.resolvePerson(for: recipient.user) } completion(results) }

Page 45: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•Demo

Page 46: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

“Read my messages on UnicornChat”

Page 47: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

open class INMessage : NSObject, NSCopying, NSSecureCoding {

open var identifier: String { get }

@available(iOS 11.0, *) open var conversationIdentifier: String? { get }

open var content: String? { get } open var dateSent: Date? { get }

@NSCopying open var sender: INPerson? { get }

open var recipients: [INPerson]? { get } }

Page 48: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

open class INMessage : NSObject, NSCopying, NSSecureCoding {

open var identifier: String { get }

@available(iOS 11.0, *) open var conversationIdentifier: String? { get }

open var content: String? { get } open var dateSent: Date? { get }

@NSCopying open var sender: INPerson? { get }

open var recipients: [INPerson]? { get } }

Page 49: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

open class INSendMessageIntent : INIntent {

open var recipients: [INPerson]? { get }

open var content: String? { get } open var groupName: String? { get } open var serviceName: String? { get }

@available(iOS 11.0, *) open var conversationIdentifier: String? { get } @NSCopying open var sender: INPerson? { get } }

Page 50: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

open class INSendMessageIntent : INIntent {

open var recipients: [INPerson]? { get }

open var content: String? { get } open var groupName: String? { get } open var serviceName: String? { get }

@available(iOS 11.0, *) open var conversationIdentifier: String? { get } @NSCopying open var sender: INPerson? { get } }

Page 51: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution Conversation identifier

“Read my messages on UnicornChat”

Page 52: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution Conversation identifier

“Read my messages on UnicornChat”

Page 53: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution Conversation identifier

“Read my messages on UnicornChat”Siri

Page 54: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Application Extension

Contact Resolution Conversation identifier

“Read my messages on UnicornChat”

SearchForMessagesIntent handle

Siri

INSearchForMessagesIntent

Page 55: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Application Extension

Contact Resolution Conversation identifier

“Read my messages on UnicornChat”

SearchForMessagesIntent handle

Siri

INSearchForMessagesIntent

Page 56: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Application Extension

Contact Resolution Conversation identifier

“Read my messages on UnicornChat”

INMessageconversationIdentifier

Siri

SearchForMessagesIntent handle

Page 57: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Application Extension

Contact Resolution Conversation identifier

“Read my messages on UnicornChat”

INMessageconversationIdentifier

Siri

SearchForMessagesIntent handle

Page 58: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Application Extension INMessageconversationIdentifier

Contact Resolution Conversation identifier

“Read my messages on UnicornChat”Siri

SearchMessageIntent handle

Page 59: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Application Extension INMessageconversationIdentifier

Contact Resolution Conversation identifier

“Read my messages on UnicornChat” Would you like to reply?Siri

SearchMessageIntent handle

Page 60: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution Conversation identifier

“Yes, hello”

Application Extension

Page 61: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Contact Resolution Conversation identifier

“Yes, hello”Siri

Application Extension

Page 62: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Application Extension

Contact Resolution Conversation identifier

resolveRecipients

“Yes, hello”Siri

INSendMessageIntentconversationIdentifier

Page 63: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Application Extension

Contact Resolution Conversation identifier

resolveRecipients

“Yes, hello”Siri

INSendMessageIntentconversationIdentifier

Page 64: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Application Extension INSendMessageIntentconversationIdentifier

Contact Resolution Conversation identifier

“Yes, hello”Siri

resolveRecipients

Page 65: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Application Extension INSendMessageIntentconversationIdentifier

Contact Resolution Conversation identifier

“Yes, hello”Siri

resolveRecipients

Page 66: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Related Session

Enabling Your App for CarPlay WWDC 2017 Video

Page 67: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 68: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

public enum INStartVideoCallIntentResponseCode : Int { case unspecified case ready case continueInApp case failure case failureRequiringAppLaunch case failureAppConfigurationRequired case failureCallingServiceNotAvailable

@available(iOS 11.0, *) case failureInvalidNumber }

Page 69: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

public enum INStartVideoCallIntentResponseCode : Int { case unspecified case ready case continueInApp case failure case failureRequiringAppLaunch case failureAppConfigurationRequired case failureCallingServiceNotAvailable

@available(iOS 11.0, *) case failureInvalidNumber }

Page 70: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•INPerson.siriMatches

Page 71: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•INPerson.siriMatches•Multiple handles

Page 72: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•INPerson.siriMatches•Multiple handles•Conversation identifier

Page 73: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•INPerson.siriMatches•Multiple handles•Conversation identifier•Response codes

Page 74: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Rohit Dasari, SiriKit Engineering

•Security •Device unlock, authentication, and payments

Page 75: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 76: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Security Requiring device unlock

Page 77: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Security Requiring device unlock

Page 78: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 79: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 80: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

class INSetCarLockStatusIntent : INIntent { var carName: INSpeakableString? { get }

var locked: Bool? { get }}

Page 81: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 82: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 83: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 84: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 85: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 86: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 87: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•Demo

Page 88: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Security LocalAuthentication.framework

Page 89: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Security LocalAuthentication.framework

Multiple forms of authentication

Page 90: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Security LocalAuthentication.framework

Multiple forms of authentication• TouchID

Page 91: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Security LocalAuthentication.framework

Multiple forms of authentication• TouchID• Passcode

Page 92: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Security LocalAuthentication.framework

Multiple forms of authentication• TouchID• Passcode

Call in your handle method

Page 93: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Security LocalAuthentication.framework

Multiple forms of authentication• TouchID• Passcode

Call in your handle method

Siri waits for user input

Page 94: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Security LocalAuthentication.framework

Multiple forms of authentication• TouchID• Passcode

Call in your handle method

Siri waits for user input

Keychain and Authentication with Touch ID WWDC 2014

Page 95: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 96: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 97: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•Custom Vocabulary •User-specific and app global

Page 98: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 99: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 100: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary User-specific

Page 101: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary User-specific

Help Siri understand words unique to users

Page 102: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary User-specific

Help Siri understand words unique to users• Contact, photo album and keyword, car, workout, bank, account, note, list item

Page 103: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary User-specific

Help Siri understand words unique to users• Contact, photo album and keyword, car, workout, bank, account, note, list item

Use INVocabulary API

Page 104: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary User-specific

Help Siri understand words unique to users• Contact, photo album and keyword, car, workout, bank, account, note, list item

Use INVocabulary API

Introducing SiriKit WWDC 2016

Extending your apps with SiriKit WWDC 2016

Page 105: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

open class INVocabulary : NSObject { open func setVocabularyStrings(_ vocabulary: NSOrderedSet, of type: INVocabularyStringType)

Page 106: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“SharedAccount”

“NestEgg”

SharedAccount Object

NestEgg Object

Application

Siri

Page 107: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

Application

Siri

“SharedAccount”

“NestEgg”

SharedAccount Object

NestEgg Object

Page 108: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

“SharedAccount”

“NestEgg”

“SharedAccount”

“NestEgg”

Custom Vocabulary INVocabulary

Application

Siri

SharedAccount Object

NestEgg Object

Page 109: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

Application

SharedAccount Object

NestEgg Object

“SharedAccount”

“NestEgg”Siri

Page 110: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

Application

SharedAccount Object

NestEgg Object

“SharedAccount”

“NestEgg”Siri

Page 111: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“Show my nest egg balance”

Page 112: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“Show my nest egg balance”

Application

SharedAccount Object

NestEgg Object

“SharedAccount”

“NestEgg”Siri

Page 113: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“Show my nest egg balance”

Application

SharedAccount Object

NestEgg Object

“SharedAccount”

“NestEgg”Siri

Page 114: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“Show my nest egg balance”

Application

SharedAccount Object

NestEgg Object

“SharedAccount”

“NestEgg”Siri

Page 115: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

Application

SharedAccount Object

NestEgg Object

“Show my nest egg balance”Siri

“SharedAccount”

“NestEgg”

Page 116: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

“Show my NestEgg balance”

Custom Vocabulary INVocabulary

Application

SharedAccount Object

NestEgg Object

Siri“SharedAccount”

“NestEgg”NestEgg

Page 117: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

Application

SharedAccount Object

NestEgg Object

“Show my NestEgg balance”Siri

“SharedAccount”

“NestEgg”

Application Extension

Page 118: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

Application

SharedAccount Object

NestEgg Object

“Show my NestEgg balance”Siri

“SharedAccount”

“NestEgg”

Fuzzy match Object for "NestEgg"

Application Extension

Page 119: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

open class INVocabulary : NSObject { open func setVocabularyStrings(_ vocabulary: NSOrderedSet, of type: INVocabularyStringType)

@available(iOS 11.0, *) open func setVocabulary(_ vocabulary: NSOrderedSet, of type: INVocabularyStringType) // vocabulary items can be of any type that conforms to the INSpeakable protocol }

Page 120: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

open class INVocabulary : NSObject { open func setVocabularyStrings(_ vocabulary: NSOrderedSet, of type: INVocabularyStringType)

@available(iOS 11.0, *) open func setVocabulary(_ vocabulary: NSOrderedSet, of type: INVocabularyStringType) // vocabulary items can be of any type that conforms to the INSpeakable protocol }

NEW

Page 121: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

public protocol INSpeakable : NSObjectProtocol { public var spokenPhrase: String { get }

// "NestEgg", "Spyn"

public var pronunciationHint: String? { get } // "nest egg", "spin"

public var vocabularyIdentifier: String? { get } // "nestegg", "object-id:456ABCDEF1237890"

public var alternativeSpeakableMatches: [INSpeakable]? { get } }

Page 122: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

public protocol INSpeakable : NSObjectProtocol { public var spokenPhrase: String { get }

// "NestEgg", "Spyn"

public var pronunciationHint: String? { get } // "nest egg", "spin"

public var vocabularyIdentifier: String? { get } // "nestegg", "object-id:456ABCDEF1237890"

public var alternativeSpeakableMatches: [INSpeakable]? { get } }

Page 123: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

public protocol INSpeakable : NSObjectProtocol { public var spokenPhrase: String { get }

// "NestEgg", "Spyn"

public var pronunciationHint: String? { get } // "nest egg", "spin"

public var vocabularyIdentifier: String? { get } // "nestegg", "object-id:456ABCDEF1237890"

public var alternativeSpeakableMatches: [INSpeakable]? { get } }

Page 124: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

public protocol INSpeakable : NSObjectProtocol { public var spokenPhrase: String { get }

// "NestEgg", "Spyn"

public var pronunciationHint: String? { get } // "nest egg", "spin"

public var vocabularyIdentifier: String? { get } // "nestegg", "object-id:456ABCDEF1237890"

public var alternativeSpeakableMatches: [INSpeakable]? { get } }

Page 125: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

public protocol INSpeakable : NSObjectProtocol { public var spokenPhrase: String { get }

// "NestEgg", "Spyn"

public var pronunciationHint: String? { get } // "nest egg", "spin"

public var vocabularyIdentifier: String? { get } // "nestegg", "object-id:456ABCDEF1237890"

public var alternativeSpeakableMatches: [INSpeakable]? { get } }

Page 126: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

SharedAccount <INSpeakable>

NestEgg <INSpeakable>

SharedAccount Object

NestEgg Object

Application

Siri

Page 127: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

SharedAccount <INSpeakable>

NestEgg <INSpeakable>

SharedAccount Object

NestEgg Object

Application

Siri

Page 128: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

SharedAccount <INSpeakable>

NestEgg <INSpeakable>

SharedAccount Object

NestEgg Object

Application

SharedAccount <INSpeakable>

NestEgg <INSpeakable>Siri

Page 129: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

Application

SharedAccount Object

NestEgg Object

SharedAccount <INSpeakable>

NestEgg <INSpeakable>Siri

Page 130: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

Application

SharedAccount Object

NestEgg Object

SharedAccount <INSpeakable>

NestEgg <INSpeakable>Siri

Page 131: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“Show my nest egg balance”

Page 132: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“Show my nest egg balance”

Application

SharedAccount Object

NestEgg Object

SiriSharedAccount <INSpeakable>

NestEgg <INSpeakable>

Page 133: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“Show my nest egg balance”

Application

SharedAccount Object

NestEgg Object

SiriSharedAccount <INSpeakable>

NestEgg <INSpeakable>

Page 134: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“Show my nest egg balance”

Application

SharedAccount Object

NestEgg Object

SiriSharedAccount <INSpeakable>

NestEgg <INSpeakable>

Page 135: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

“Show my NestEgg balance”

Custom Vocabulary INVocabulary

Application

SharedAccount Object

NestEgg Object

SiriSharedAccount <INSpeakable>

NestEgg <INSpeakable>NestEgg

Page 136: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“Show my NestEgg balance”

Application

SiriSharedAccount <INSpeakable>

NestEgg <INSpeakable>

SharedAccount Object

NestEgg Object

Application Extension

Page 137: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary INVocabulary

“Show my NestEgg balance”

Application

SiriSharedAccount <INSpeakable>

NestEgg <INSpeakable>

SharedAccount Object

NestEgg Object Look up object by vocabularyIdentifier

Application Extension

Page 138: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 139: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary App global

Page 140: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary App global

Help Siri understand words unique to your app

Page 141: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary App global

Help Siri understand words unique to your app

Common to all of your users

Page 142: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary App global

Help Siri understand words unique to your app

Common to all of your users• Ride name, workout names

Page 143: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary App global

Help Siri understand words unique to your app

Common to all of your users• Ride name, workout names

Use AppIntentVocabulary.plist

Page 144: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 145: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 146: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary App global

Page 147: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary App global

INSpeakable

Page 148: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary App global

INSpeakable

vocabularyIdentifier

Page 149: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary App global

INSpeakable

vocabularyIdentifier

spokenPhrase

Page 150: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Custom Vocabulary App global

INSpeakable

vocabularyIdentifier

spokenPhrase

pronunciationHint

Page 151: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open
Page 152: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•UI Testing

Page 153: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

UI Testing

Page 154: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

UI Testing

Inside your project in Xcode

Page 155: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

UI Testing

Inside your project in Xcode

Siri in simulator lets you test on multiple devices

Page 156: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

UI Testing

Inside your project in Xcode

Siri in simulator lets you test on multiple devices

Automate your tests to check and maintain quality

Page 157: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

UI Testing

Inside your project in Xcode

Siri in simulator lets you test on multiple devices

Automate your tests to check and maintain quality

Language independence

Page 158: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

UI Testing

Inside your project in Xcode

Siri in simulator lets you test on multiple devices

Automate your tests to check and maintain quality

Language independence

UI Testing in Xcode WWDC 2015

Continuous Integration and Code Coverage in Xcode 7 WWDC 2015

Page 159: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

let siriService = XCUIDevice.shared.siriService NEW

Page 160: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

let siriService = XCUIDevice.shared.siriServicesiriService.activate(voiceRecognitionText: "Unlock my car")

NEW

Page 161: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

•Demo

Page 162: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Summary

Page 163: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Summary

Contact resolution

Page 164: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Summary

Contact resolution

Security

Page 165: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Summary

Contact resolution

Security

Custom vocabulary

Page 166: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Summary

Contact resolution

Security

Custom vocabulary

UI testing

Page 167: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

More Informationhttps://developer.apple.com/wwdc17/228

Page 168: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Related Sessions

What's New in ApplePay and Wallet Executive Ballroom Thursday 5:10PM

Enabling Your App for CarPlay WWDC 2017 Video

Introducing SiriKit WWDC 2016

Extending your apps with SiriKit WWDC 2016

Continuous Integration and Code Coverage in Xcode 7 WWDC 2015

UI Testing in Xcode WWDC 2015

Keychain and Authentication with Touch ID WWDC 2014

Page 169: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open

Labs

SiriKit Lab Technology Lab C Fri 9:00AM–12:00PM

Page 170: •Making Great SiriKit Experiences - Apple Inc.€¦ · •Making Great SiriKit Experiences ... •Security • Device unlock ... Extending your apps with SiriKit WWDC 2016. open