Top Banner
Sirikit - iOS 10
15

Cocoaheads talk-sirikit

Jan 24, 2017

Download

Technology

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: Cocoaheads talk-sirikit

Sirikit - iOS 10

Page 2: Cocoaheads talk-sirikit

Dev iOS na avenue code

Jonas Alves Simões [email protected]

Page 3: Cocoaheads talk-sirikit

WWDC 2016

• Apple libera o sirikit

• Sirikit é o meio de integrar seu app ao siri e ao maps

• Uso do intent framework e Intents UI framework

• Usuario faz requisição de certos tipos de serviços atráves do Siri ou Maps e seu app usa os extensions para responder a isso

Page 4: Cocoaheads talk-sirikit

Extensions

Page 5: Cocoaheads talk-sirikit

Domains Suportados

• Calling intents support audio and video calls to another user of your app.

• Workout intents support the starting and stopping of workouts.• Message intents support the sending of message data to specific

users• Payment intents support financial transactions between your app

and the user. • Photo intents support the searching and displaying of photos. • Ride sharing intents support the booking and management of user

transportation.

Page 6: Cocoaheads talk-sirikit

Configuração plist

INSearchForPhotosIntent INStartAudioCallIntent INStartWorkoutIntent

INSearchCallHistoryIntent INSendMessageIntent

INSearchForMessagesIntent INSetMessageAttributeIntent

INSearchForPhotosIntent INEndWorkoutIntent

https://developer.apple.com/library/prerelease/content/documentation/Intents/Conceptual/SiriIntegrationGuide/SiriDomains.html#//apple_ref/doc/uid/TP40016875-CH9-SW2

Page 7: Cocoaheads talk-sirikit

Intents - Domains

Resolve, Confirm and Handle.

Page 8: Cocoaheads talk-sirikit

Retornando valores para os Intents

Durante a fase de resolução dos intents, é necessário retornar um valor do tipo INIntentResolutionResult para o completion do intent.

retorno sucesso INStringResolutionResult.success(with: "Legal")

valor não necessário INStringResolutionResult.notRequired()

valor necessita desambiguação INStringResolutionResult.disambiguation(with: optionsArray)

valor necessida confirmação do usuário INStringResolutionResult.confirmationRequired(with: String?)

valor precisa de mais detalhes INPersonResolutionResult.needsMoreDetails(for: INPerson)

valor é obrigatório INStringResolutionResult.needsValue()

valor não é suportado INStringResolutionResult.unsupported()

Page 9: Cocoaheads talk-sirikit

Confirm e Handle

Confirm() - Metodo usados para confirmar ação do usuário e executar alguma ação no seu app.

Handle() - Chamado quando o usuário confirme a ação, como seu app vai responder e o que vai executar.

Page 10: Cocoaheads talk-sirikit

Vocabulary - App Logic - UI

É possível ensinar ao seu app alguns termos usados para conversar com ele

INVocabulary.shared().setVocabularyStrings(pharses, of: INVocabularyStringType.workoutActivityName)

contactName contactGroupName

photoTag photoAlbumName

workoutActivityName carProfileName

Page 11: Cocoaheads talk-sirikit

Vocabulary - App Logic - UI

É possível ensinar ao seu app alguns termos usados para ajudar a siri a compreender o que você quer

INVocabulary.shared().setVocabularyStrings(pharses, of: INVocabularyStringType.workoutActivityName)

contactName contactGroupName

photoTag photoAlbumName

workoutActivityName carProfileName

Chamada é feita dentro do app, e não no extensions. Apple recomenda usar dispatch.Async

Page 12: Cocoaheads talk-sirikit

Como debugar

• Rodar o app uma vez para instalar no aparelho

• Não é possível debugar no simulador

• Selecionar o extension e rodar e selecionar o siri

Page 13: Cocoaheads talk-sirikit

Limitações

• Os atuais intents não cobrem muitas possibilidades de uso nos apps. Apesar de liberar a integração pareceu mais do mesmo.

• Muitas vezes acontece o erro - "Você terá ter que continuar no aplicativo"

• INPersonResolutionResult.needsMoreDetails e confirmationRequired -- bug

Page 14: Cocoaheads talk-sirikit

Exemplo

Page 15: Cocoaheads talk-sirikit

Fontes