SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Sirikit - iOS 10
Dev iOS na avenue code
Jonas Alves Simões
alves.jonas@gmail.com
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
Extensions
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.
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
Intents - Domains
Resolve, Confirm and Handle.
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()
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.
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
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
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
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
Exemplo
Fontes

Mais conteúdo relacionado

Semelhante a Sirikit - iOS 10: Integrando seu app com Siri e Maps

Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
[ServiceNow] Visão geral da plataforma
[ServiceNow] Visão geral da plataforma[ServiceNow] Visão geral da plataforma
[ServiceNow] Visão geral da plataformaAlessandro Almeida
 
O Diferencial de uma Estratégia Mobile...e Multiplataforma!
O Diferencial de uma Estratégia Mobile...e Multiplataforma!O Diferencial de uma Estratégia Mobile...e Multiplataforma!
O Diferencial de uma Estratégia Mobile...e Multiplataforma!Xpand IT
 
Desenvolvimento aplicações Android e Google Maps
Desenvolvimento aplicações Android e Google MapsDesenvolvimento aplicações Android e Google Maps
Desenvolvimento aplicações Android e Google MapsGDGFoz
 
AppInventor_manual.pdf
AppInventor_manual.pdfAppInventor_manual.pdf
AppInventor_manual.pdfGonaloRoxo5
 
Application Insights + Apps Mobile Híbridos
Application Insights + Apps Mobile HíbridosApplication Insights + Apps Mobile Híbridos
Application Insights + Apps Mobile HíbridosLetticia Nicoli
 
Ingressos no pulso - Levando festas e ingressos para o Apple Watch
Ingressos no pulso - Levando festas e ingressos para o Apple WatchIngressos no pulso - Levando festas e ingressos para o Apple Watch
Ingressos no pulso - Levando festas e ingressos para o Apple WatchRodrigo Borges
 
Parse - Backend As A Service
Parse - Backend As A ServiceParse - Backend As A Service
Parse - Backend As A ServiceHenrique Morbin
 
Micro Interactions on the web
Micro Interactions on the webMicro Interactions on the web
Micro Interactions on the web🍉 Renan Araujo
 
Memorias das trincheiras
Memorias das trincheirasMemorias das trincheiras
Memorias das trincheirasElton Minetto
 
Desenvolvimento Multiplataforma com Appcelerator Titanium
Desenvolvimento Multiplataforma com Appcelerator TitaniumDesenvolvimento Multiplataforma com Appcelerator Titanium
Desenvolvimento Multiplataforma com Appcelerator TitaniumDirlei Dionísio
 
Share Point 2013 - O Que Há De Novo Para Desenvolvedores
Share Point 2013 - O Que Há De Novo Para DesenvolvedoresShare Point 2013 - O Que Há De Novo Para Desenvolvedores
Share Point 2013 - O Que Há De Novo Para DesenvolvedoresHélio Sá Moreira
 

Semelhante a Sirikit - iOS 10: Integrando seu app com Siri e Maps (20)

Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
[ServiceNow] Visão geral da plataforma
[ServiceNow] Visão geral da plataforma[ServiceNow] Visão geral da plataforma
[ServiceNow] Visão geral da plataforma
 
Android - Criando uma ListView
Android - Criando  uma ListViewAndroid - Criando  uma ListView
Android - Criando uma ListView
 
O Diferencial de uma Estratégia Mobile...e Multiplataforma!
O Diferencial de uma Estratégia Mobile...e Multiplataforma!O Diferencial de uma Estratégia Mobile...e Multiplataforma!
O Diferencial de uma Estratégia Mobile...e Multiplataforma!
 
Desenvolvimento aplicações Android e Google Maps
Desenvolvimento aplicações Android e Google MapsDesenvolvimento aplicações Android e Google Maps
Desenvolvimento aplicações Android e Google Maps
 
AppInventor_manual.pdf
AppInventor_manual.pdfAppInventor_manual.pdf
AppInventor_manual.pdf
 
Application Insights + Apps Mobile Híbridos
Application Insights + Apps Mobile HíbridosApplication Insights + Apps Mobile Híbridos
Application Insights + Apps Mobile Híbridos
 
Ingressos no pulso - Levando festas e ingressos para o Apple Watch
Ingressos no pulso - Levando festas e ingressos para o Apple WatchIngressos no pulso - Levando festas e ingressos para o Apple Watch
Ingressos no pulso - Levando festas e ingressos para o Apple Watch
 
Parse - Backend As A Service
Parse - Backend As A ServiceParse - Backend As A Service
Parse - Backend As A Service
 
Dreams
DreamsDreams
Dreams
 
Micro Interactions on the web
Micro Interactions on the webMicro Interactions on the web
Micro Interactions on the web
 
Memorias das trincheiras
Memorias das trincheirasMemorias das trincheiras
Memorias das trincheiras
 
PHP nas Nuvens
PHP nas NuvensPHP nas Nuvens
PHP nas Nuvens
 
Conhecendo o Android Wear
Conhecendo o Android WearConhecendo o Android Wear
Conhecendo o Android Wear
 
Desenvolvimento Multiplataforma com Appcelerator Titanium
Desenvolvimento Multiplataforma com Appcelerator TitaniumDesenvolvimento Multiplataforma com Appcelerator Titanium
Desenvolvimento Multiplataforma com Appcelerator Titanium
 
Share Point 2013 - O Que Há De Novo Para Desenvolvedores
Share Point 2013 - O Que Há De Novo Para DesenvolvedoresShare Point 2013 - O Que Há De Novo Para Desenvolvedores
Share Point 2013 - O Que Há De Novo Para Desenvolvedores
 
Palestra Android
Palestra AndroidPalestra Android
Palestra Android
 
Curso Básico Android - Aula 05
Curso Básico Android - Aula 05Curso Básico Android - Aula 05
Curso Básico Android - Aula 05
 
APP/API e Mobile: o que usar e quando
APP/API e Mobile: o que usar e quandoAPP/API e Mobile: o que usar e quando
APP/API e Mobile: o que usar e quando
 

Sirikit - iOS 10: Integrando seu app com Siri e Maps

  • 2. Dev iOS na avenue code Jonas Alves Simões alves.jonas@gmail.com
  • 3. 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
  • 5. 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.
  • 7. Intents - Domains Resolve, Confirm and Handle.
  • 8. 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()
  • 9. 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.
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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