SwiftUI et IA locale : la checklist privacy pour une app indie en 2026

Version courte : l'IA locale est intéressante pour une app indie seulement si elle réduit une friction précise et si la promesse privacy reste vraie dans le produit, la fiche App Store et le support. Sinon, c'est une dette marketing avec une jolie démo.
En 2026, chaque studio iOS veut dire "on-device AI". Je comprends l'envie. La latence baisse, les données restent plus près de l'utilisateur, et l'App Store adore les features lisibles. Mais une app SwiftUI solide ne commence pas par un modèle. Elle commence par un geste utilisateur.
Comment j'ai construit cette checklist
Cette checklist privacy vient de deux intégrations d'IA locale que j'ai livrées chez Doved Studio, sur Titan's Grip et sur Glean, puis relues ligne à ligne contre la fiche App Store de chaque app. La méthode : lister chaque donnée touchée par la feature, couper le réseau, relancer le parcours, et garder seulement ce qui marche encore. Tout ce qui casse hors ligne repart dans la colonne « serveur », et cette colonne doit apparaître dans la fiche App Store.
Le point de repère technique le plus utile de 2026 vient de la session WWDC26 d'Apple. Selon Build with the new Apple Foundation Model on Private Cloud Compute, le modèle sur l'appareil fonctionne hors ligne et sans quota, tandis que le modèle serveur Private Cloud Compute exige une connexion et impose une limite d'usage quotidienne par utilisateur. Cette différence n'est pas un détail d'implémentation : c'est exactement la frontière que ta promesse privacy doit décrire.
Les autres sources que je croise avec ces essais : la documentation App Intents, la page Machine Learning d'Apple, la fiche informations de confidentialité sur l'App Store et les Human Interface Guidelines.
La question avant le framework
La question avant le framework porte sur le geste, pas sur le modèle. Demande-toi d'abord quelle action devient plus rapide : classer une note, proposer un entraînement, résumer une capture, préremplir un formulaire, détecter une intention, ou vérifier une vidéo. Si la réponse est "rendre l'app intelligente", la feature n'est pas prête.
Sur une app comme Titans Grip, l'IA utile ne remplace pas le coach. Elle aide à repérer une erreur récurrente, à prioriser un cue, ou à lancer une séance plus vite. Sur Glean, elle ne doit pas devenir un chatbot généraliste. Elle doit transformer une source en action.
La checklist privacy
La checklist privacy couvre cinq points : données sortantes, permissions, fallback, explication du résultat et cohérence de la fiche App Store.
| Point | Question | Risque si oublié |
|---|---|---|
| Données | Qu'est-ce qui quitte l'appareil ? | Promesse privacy fausse |
| Permission | Pourquoi demander caméra, micro ou fichiers ? | Rejet App Review ou méfiance |
| Fallback | Que se passe-t-il sans IA ? | Feature cassée sur certains appareils |
| Explication | L'utilisateur comprend-il le résultat ? | IA opaque et support pénible |
| Label | La fiche App Store correspond-elle au code ? | Incohérence publique |
Architecture SwiftUI simple
Une architecture SwiftUI simple isole le modèle derrière un service, pour que l'IA reste remplaçable. Garde la vue SwiftUI maigre. La vue capture l'intention, le service exécute l'analyse, le modèle d'état expose un résultat compréhensible. Si l'écran contient le prompt, la logique d'évaluation, l'appel modèle et la navigation, tu as construit un nœud.
Je préfère une architecture en trois blocs : un Intent clair, un UseCase testable, et une ResultView qui explique quoi faire ensuite. Ce découpage rend l'IA remplaçable. Aujourd'hui local, demain hybride, après-demain désactivée pour certains appareils : le produit survit.
App Intents sans théâtre
Un App Intent sans théâtre décrit une action réelle et prévisible. Un App Intent doit décrire une action réelle. "Démarrer une analyse de jab" est concret. "Optimiser mon entraînement" est flou. "Créer une tâche depuis ce lien" est concret. "Rendre mon navigateur productif" est flou. L'intégration système ne pardonne pas les verbes mous.
Le bon test : l'utilisateur peut-il comprendre ce qui va se passer avant de lancer l'action ? Si oui, l'intent mérite d'exister. Sinon, garde-le dans le backlog.
Le test de vérité
Le test de vérité consiste à relire la promesse publique en face du code. Avant de shipper, ouvre la fiche App Store et lis la promesse à voix haute. Puis ouvre le code et vérifie si elle est vraie. "Vos données restent sur l'appareil" est une phrase lourde. Elle doit survivre aux analytics, aux crash logs, aux previews, au support et aux appels réseau.
Une feature IA réussie dans une app indie est souvent petite, rapide et honnête. Elle ne cherche pas à remplacer l'app. Elle enlève une friction que l'utilisateur sentait déjà.
FAQ
Faut-il tout faire en local ?
Non, il ne faut pas tout faire en local. Il faut être clair sur ce qui est local, ce qui part au serveur et pourquoi.
App Intents est-il lié à l'IA ?
App Intents n'est pas lié à l'IA. Pas forcément. C'est surtout une manière d'exposer des actions système claires.
Quel est le meilleur premier cas d'usage ?
Le meilleur premier cas d'usage est une action courte, fréquente, mesurable et réversible. Une action courte, fréquente, mesurable et réversible.

