Intégrer votre application à Apple Intelligence et Siri : Guide pour les développeurs iOS

Avec l’arrivée d’Apple Intelligence, Apple franchit une nouvelle étape dans l’intégration de l’intelligence artificielle à son écosystème. Actuellement en bêta aux États-Unis et prévue en France pour avril 2025, cette avancée apporte des fonctionnalités puissantes capables de transformer l’expérience utilisateur.

Apple Intelligence introduit de nombreuses innovations, notamment la génération automatique de texte, d’emojis et d’illustrations pour enrichir l’expérience utilisateur. La gestion des notifications devient plus intelligente avec un résumé automatisé, un filtrage avancé et une meilleure intégration du mode Focus. Siri propose désormais la transcription et le résumé des appels, offrant une synthèse claire des échanges. De plus, l’assistant vocal bénéficie d’une compréhension du langage améliorée, d’une prise en compte avancée du contexte et de l’intégration de ChatGPT pour des interactions encore plus naturelles et précises.

Exemple de tous les outils d'Apple Intelligence

Apple met également un point d’honneur à garantir la confidentialité des données en traitant les informations en local et en utilisant un Cloud Computing privé sécurisé.

Dans cet article, nous allons voir pourquoi et comment intégrer Siri à votre application iOS en exploitant les App Intents.

Pourquoi intégrer votre application à Siri?

Pour améliorer l’expérience utilisateur car Siri permet aux utilisateurs d’exécuter des actions spécifiques sans ouvrir votre application, rendant les interactions plus fluides et intuitives.

Mais aussi pour une interaction omniprésente. En effet, Siri peut accéder aux informations ou aux fonctionnalités de votre application depuis n’importe quel endroit dans iOS (Spotlight, Raccourcis, Widgets, etc.).

Avec l’essor de l’intelligence artificielle et des interfaces vocales, offrir une intégration Siri peut donner un avantage concurrentiel significatif à votre application.

Imaginons que l’utilisateur demande : “Ouvre le livre que je suis en train de lire”.

Grâce à Apple Intelligence et aux Assistant Intents, Siri comprendra automatiquement qu’il s’agit du livre en cours de lecture dans votre application et l’ouvrira instantanément, sans que l’utilisateur ait besoin de préciser le nom du livre ou de l’application.

Quelques définitions

Qu’est-ce qu’un App Intent ?

Un App Intent est une interface déclarative qui permet à une application d’exposer ses fonctionnalités au système d’exploitation, facilitant ainsi leur utilisation via Siri, Spotlight et l’application Raccourcis. Grâce aux App Intents, les développeurs peuvent définir des actions spécifiques que les utilisateurs peuvent déclencher par la voix, la recherche ou l’automatisation.

Les App Intents reposent sur le framework AppIntents, introduit par Apple pour remplacer l’ancien système des SiriKit Intents.

En créant un App Intent, votre fonctionnalité devient accessible à :

  • 🎙 Siri : pour exécuter des commandes vocales interactives.
  • 🔍 Spotlight : pour rechercher et déclencher des actions rapidement.
  • ⚡ L’application Raccourcis : pour automatiser des tâches et enrichir les workflows utilisateurs.

Qu’est-ce qu’un Assistant Intent ?

Les Assistant Intents sont une sous-catégorie des App Intents, permettant aux applications d’exposer leurs fonctionnalités à Siri et Apple Intelligence.

Apple a défini des catégories spécifiques d’Assistant Intents, conçues pour tirer parti des modèles pré-entraînés d’Apple Intelligence. Et simplifie leur implémentation grâce au système de macros Swift, rendant leur adoption plus rapide et plus intuitive pour les développeurs.

💡À savoir

La liste complète des Assistant Intent compatibles Apple Intelligence est disponible ici Documentation Apple.

📌 Catégories prises en charge à ce jour : Livres, Navigation web, Appareil photo, Visionneuse de documents, Gestion de fichiers, Journal et notes, Messagerie électronique, Photos et vidéos, Présentations, Feuilles de calcul, Recherche dans l’application et Spotlight, Tableaux blancs collaboratifs, Traitement de texte et édition.

Apple a annoncé lors de la WWDC 24 que de nouveaux Assistant Intents seront ajoutés progressivement tout au long de l’année, étendant encore les capacités de Siri et Apple Intelligence. Restez à l’affût des prochaines mises à jour !

Comment choisir entre les deux ?

Les App Intents offrent une personnalisation complète, mais nécessitent une implémentation manuelle pour être pris en charge par Siri. En revanche, les Assistant Intents sont plus simples à intégrer, car ils suivent un schéma prédéfini, mais leur usage est limité à un nombre restreint de catégories définies par Apple.

Exemple:

Pour que l’utilisateur ouvre le dernier livre qu’il a lu :

Avec un Assistant intent, il peut simplement demander: “Open my last read book”

Ouverture du dernier livre lu par Apple Intelligence

Avec un App intent, donc sans Apple Intelligence, il doit demander: “Dans l’application livre, ouvre le dernier livre que j’ai lu”

Ouverture du dernier livre lu sans Apple Intelligence

Pour les catégories non prises en charge par les Assistant Intents, telles que les fonctionnalités liées à la maison connectée, il est nécessaire de créer des App Intents spécifiques.

Screenshot des App Intents que fournis l'application Nuki

Étapes pour connecter votre application à Siri

Configurer le projet

Avant toute chose, assurez-vous que votre projet respecte ces prérequis :

  • Cibler iOS 18 ou une version ultérieure (nécessaire pour bénéficier d’Apple Intelligence).
  • Activez les App Intents dans Xcode.

Une fois votre projet configuré, il est temps d’exposer vos entities et intents à Siri.

Les macro essentiels:

@AssistantEntity: définit un objet de votre application compatible avec l’action de votre assistant intent.

@AssistantEnum: définit un enum compatible avec l’action de votre assistant intent. (certain AssistantIntent necessite un enum )

@AssistantIntent(schema:) : définit les actions réalisables sur cet objet.

Définition d’une action avec @AssistantIntent

Prenons l’exemple d’une action permettant d’ouvrir un document.

@AssistantIntent(schema: .books.openBook)
struct OpenDocumentIntent: OpenIntent {
    var target: DocumentEntity

    @Dependency
    var library: DocumentLibrary

    @Dependency
    var navigation: NavigationManager
    
    @MainActor
    func perform() async throws -> some IntentResult {
        let documents = library.documents(for: [target.id])
        guard let document = documents.first else {
            throw IntentError.noEntity
        }
        navigation.openDocument(document)
        
        return .result()
    }
}

👉 @AssistantIntent(schema: .books.openBook) Cette macro Swift indique à Siri qu’il peut utiliser cette intent pour ouvrir un livre.

👉 La méthode perform() sera appelée par iOS pour exécuter l’action de l’intent.

Les macros @Dependency permettent d’intégrer des classes et services dans votre Intent. Elles seront injectées automatiquement grâce à AppDependencyManager.

Exemple d’initialisation des dépendances dans l’application :
struct PDFReaderAppleIntelligenceApp: App {
    let library: DocumentLibrary

    let navigationManager: NavigationManager

    init() {
        let library = DocumentLibrary()
        let navigationManager = NavigationManager()

        self.library = library
        self.navigationManager = navigationManager

        AppDependencyManager.shared.add(dependency: library)
        AppDependencyManager.shared.add(dependency: navigationManager)
    }

    var body: some Scene {
        ...
    }
}

Définition d’une entity avec @AssistantEntity

Si une AppEntity ou une AppEnum est utilisée dans un AppIntent, alors elle doit être conforme au schéma d’Apple Intelligence.

Exemple : Représenter un document PDF

import AppIntents

@AssistantEntity(schema: .books.book)
struct DocumentEntity: IndexedEntity {
    static var defaultQuery = DocumentQuery()
    let id: String
    var title: String?
    var seriesTitle: String?
    var author: String?
    var genre: String?
    var purchaseDate: Date?
    var url: URL?
    var contentType: DocumentType?
    
    var displayRepresentation: DisplayRepresentation {
        DisplayRepresentation(title: "\(title ?? "unknown.pdf")")
    }
}

👉Explication :

Les propriétés id, title, author, genre, url, etc., sont nécessaires pour respecter les contraintes de @AssistantEntity(schema: .books.book).

💡 Astuce : utilisez l’autocomplétion Xcode pour générer rapidement du code conforme à la macro.

Tester avec l’application Raccourcis

Une fois l’implémentation en place, testez l’intégration Siri en suivant ces étapes :

  • Ouvrez l’application Raccourcis sur votre iPhone ou iPad.
  • Créez un nouveau raccourci et recherchez votre action dans la liste.
  • Ajoutez-la et testez son exécution avec Siri.

Ouverture d'un livre par un shortcut

⚠️ Attention : Apple ne communique pas encore sur les Assistant Intents 100 % pris en charge pendant la bêta d’Apple Intelligence. Tester via Raccourcis reste la seule méthode fiable pour s’assurer que vos Assistant Intents fonctionnent correctement. Mais dans notre cas l’assistant intents fonctionne correctement.

Et voila

Ouverture du dernier livre dans l'application de test par Siri et Apple Intelligence

Conclusion

L’intégration de Siri et des Assistant Intents permet d’offrir une interaction vocale fluide, intelligente et contextuelle avec votre application. Les commandes vocales deviennent plus naturelles, permettant à Siri de comprendre et d’exécuter facilement des demandes.

De plus, cette intégration améliore l’accessibilité, car elle permet d’offrir un accès direct aux fonctionnalités essentielles de votre application via Siri, facilitant ainsi l’utilisation par les personnes en situation de déficience visuelle.

Enfin, Ces fonctionnalités sont également intégrées à l’app Raccourcis, permettant ainsi une automatisation simple et efficace.

Cependant, il convient de noter que l’intégration est limitée aux catégories d’Assistant Intents proposées par Apple. De plus, étant encore en version bêta, l’outil nécessite d’être testé dans l’application Raccourcis pour garantir que votre Assistant Intent fonctionne correctement. Car Apple ne fournit pas encore de détails sur la compatibilité totale avec tous les modèles pré-entraînés.

🎤 Prêt à utiliser votre application avec la voix ?

🚀 Commencez dès maintenant en intégrant Apple Intelligence et Siri à votre projet ! 🔥