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

Siri Kit @ Swift Meetup Toulouse

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

Siri Kit @ Swift Meetup Toulouse

Présentation et retours d'expérience sur l'utilisation de SiriKit par Julien Lebeau (@LebeauJulien) lors du Swift Meetup Toulouse #6 en avril 2018

Avatar for Swift Meetup Toulouse

Swift Meetup Toulouse

April 24, 2018

Other Decks in Programming

Transcript

  1. Siri • Assistant personnel intelligent (à débattre) • 2010 (app

    dispo sur l'app store) -> Rachat -> 2011 (integré à iPhone 4S #old) • Langues supportées (20 + variantes) • https://www.apple.com/fr/ios/siri/
  2. SiriKit • Dispo depuis iOS 10, macOS 10.12 et watchOS

    3.2 • HomePod, CarPlay via iOS • Framework pour répondre aux requêtes de Siri ou Maps
  3. Domains • Ensemble de catégories auxquelles une app peut répondre

    • 9 en tout mais limité par plateforme • Les domains se découpent ensuite en “Intent”
  4. Listes et Notes • Création/ajout/recherche de notes • Création de

    listes, ajout d'éléments dans la liste et marquage des éléments
  5. Payment • Envoi et demande de paiement • Recherche et

    paiement de factures • Recherche de comptes et transferts
  6. Transport • Liste des options pour une course • Demande

    de transport • Demander des infos sur le statut de la course • Annuler une course • Envoyer un feedback
  7. Intents • Représente l’intention de l’utilisateur reconnu par Siri •

    Paramètres précis dans les Intents • Le nom de l’app doit être prononcé dans la requête
  8. Exemple • Using MyApp send a message to Mel saying

    Licorne are awesome • Send a message to Mel saying Swift Meetup is awesome on MyApp
  9. INSendMessageIntent open class INSendMessageIntent : INIntent { //… // Contacts

    to whom the message should be sent. open var recipients: [INPerson]? { get } // Body text of the message. open var content: String? { get } @NSCopying open var speakableGroupName: INSpeakableString? { get } open var conversationIdentifier: String? { get } // Specified service for the message. open var serviceName: String? { get } // The person, or account, sending the message. @NSCopying open var sender: INPerson? { get } }
  10. Mapping INSendMessageIntent Send a message to Mel Saying Swift Meetup

    is awesome on MyApp Recipients Content App name
  11. Supporter SiriKit • Ajouter la capability • Ajouter une Intent

    App Extension • Cocher ou pas la creation d'un Intent App Extension UI (on verra plus tard) • Specifier quel(s) Intent on veut gérer dans le Info.plist
  12. Gérer un Intent • 5 phases : 1. Determiner qui

    va gérer l'intent 2. Résoudre les paramètres 3. Confirmer 4. S'occuper de la requête 5. Répondre (potentiellement avec une UI personnalisée)