Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Siri Suggestions & Shortcuts

Siri Suggestions & Shortcuts

Introdução às sugestões e atalhos da Siri, apresentado no CocoaHeads Conference 2018 em São Paulo.

Fontes do demo: https://github.com/fjcaetano/siri-shortcuts-demo

Avatar for Flávio Caetano

Flávio Caetano

November 10, 2018
Tweet

More Decks by Flávio Caetano

Other Decks in Programming

Transcript

  1. 1. Fico irritado com Xcode desde 2011 2. Objective-C mora

    no coração ❤ 3. [myObject retain]; 4. Swift desde o dia 1
  2. 1. Fico irritado com Xcode desde 2011 2. Objective-C mora

    no coração ❤ 3. [myObject retain]; 4. Swift desde o dia 1 5. React Native é a nova paixão
  3. 1. Sugestões de ações do app 2. Pode ser em

    background 3. Ativadas por comandos de voz
  4. NSUserActivity isEligibleForSearch: Bool Indica se a atividade pode ser adicionada

    ao index do aparelho. isEligibleForPrediction: Bool Determina se a Siri pode sugerir a atividade como atalho ao usuário. suggestedInvocationPhrase: String? A frase sugerida ao usuário quando criar um atalho
  5. 1. Habilitar Siri nos entitlements 2. NSSiriUsageDescription no Info.plist 3.

    Intent handlers devem ser uma extensão 4. Intent UI em target separado
  6. Intents.intentdefinition 1. Definição das intenções e atalhos 2. Definição dos

    parâmetros e seus tipos 3. Imagem da intenção 4. Declaração dos atalhos 5. Definição das respostas customizadas
  7. Provedor de Intenções IntentHandler.confirm( intent: completion: ) Chamado quando o

    usuário inicia o fluxo da sugestão IntentHandler.handle( intent: completion: ) Usuário confirmou a execução. Retorna um IntentHandler para uma dada intenção
  8. class IntentViewController: UIViewController, INUIHostedViewControlling { func configureView( for parameters: Set<INParameter>,

    of interaction: INInteraction, interactiveBehavior: INUIInteractiveBehavior, context: INUIHostedViewContext, completion: @escaping (Bool, Set<INParameter>, CGSize) -> Void ) {} }
  9. completion(Bool, Set<INParameter>, CGSize) success: Bool O VC foi configurado ou

    se a Siri deve exibir o default configuredParameters: Set<INParameter> Os parâmetros que foram de fato configurados e utilizados. desiredSize: CGSize O tamanho que você quer que o view controller apareça. Deve estar entre o mínimo e máximo permitidos pela NSExtensionContext
  10. Intents.intentdefinition 1. Definição das intenções e sugestões 2. Imagem da

    intenção 3. Definição dos parâmetros e seus tipos 4. Declaração dos atalhos 5. Definição das respostas customizadas
  11. 1. Criar extensões para as intenções 2. Definir as intenções

    no Intents.intentdefinition 3. Doar as intenções 4. Implementar os handlers de intenções 5. Adicionar atalhos de voz Recapitulando
  12. 1. Adicionar nos Info.plist o nome da intenção! 3. .intentdefinition

    deve pertencer ao target principal! 5. Arrume a casa! Remova intenções! ⚠ NÃO SE ESQUEÇA ⚠
  13. Obrigado! Estamos contratando! Email [email protected] Slack @flavio_caetano Source Code https://github.com/fjcaetano/siri-shortcuts-demo

    Slides https://speakerdeck.com/fjcaetano/animations-swift-vs-react-native Jobs https://work.co/careers