Cocoaheads talk-sirikit
-
Upload
jonas-alves-simoes -
Category
Technology
-
view
73 -
download
0
Transcript of Cocoaheads talk-sirikit
![Page 1: Cocoaheads talk-sirikit](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/1.jpg)
Sirikit - iOS 10
![Page 3: Cocoaheads talk-sirikit](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/3.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/4.jpg)
Extensions
![Page 5: Cocoaheads talk-sirikit](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/5.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/6.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/7.jpg)
Intents - Domains
Resolve, Confirm and Handle.
![Page 8: Cocoaheads talk-sirikit](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/8.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/9.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/10.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/11.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/12.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/13.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/14.jpg)
Exemplo
![Page 15: Cocoaheads talk-sirikit](https://reader031.fdocuments.net/reader031/viewer/2022021506/58866fde1a28ab7d408b64df/html5/thumbnails/15.jpg)
Fontes