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.
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