- n’est pas pris en charge
- n’est pas activé
- n’est pas prêt au moment où vous l’appelez
Vérification la plus simple
availability.
Quatre questions différentes
Quand vous parlez de “disponibilité”, vous mélangez souvent plusieurs sujets. Apple les sépare :| API | La vraie question |
|---|---|
isAvailable | Le système est-il prêt maintenant ? |
availability | Pourquoi n’est-il pas prêt ? |
supportsLocale(_:) et supportedLanguages | La langue de l’utilisateur est-elle prise en charge ? |
contextSize | Combien de contexte le modèle peut-il accepter ? |
Diagnostic détaillé
Apple expose un état plus précis viaSystemLanguageModel.default.availability.
Les cas à connaître
| Cas | Ce que ça veut dire |
|---|---|
.available | Vous pouvez appeler le modèle |
.deviceNotEligible | Le matériel ou la configuration ne conviennent pas |
.appleIntelligenceNotEnabled | L’utilisateur doit activer la fonctionnalité côté système |
.modelNotReady | Le modèle n’est pas prêt maintenant, mais cela peut être temporaire |
Vérifier la langue ou la locale
Le support dépend aussi de la langue.supportedLanguages vous donne la liste des langues déclarées par le système. supportsLocale(_:) reste néanmoins le check le plus direct au runtime.
Disponible ne veut pas dire adapté à votre langue
Un appareil peut être techniquement compatible, mais pas votre locale de travail.Disponibilité et capacité de contexte
contextSize répond à une autre question : quelle quantité de contexte le modèle peut accepter, pas si le modèle est prêt.
Exemple d’UI de fallback
Quand vérifier la disponibilité
Au moment d’afficher la fonctionnalité
Utile pour masquer ou désactiver proprement l’entrée dans l’interface.Juste avant un appel important
Utile si votre vue reste longtemps à l’écran et que l’état a pu changer.Au moment de gérer une erreur
Si un appel échoue, revérifiez la disponibilité avant d’afficher un message générique.Recommandation pratique
Évitez les phrases du type “disponible à partir de tel appareil” directement dans le code produit. Les règles de disponibilité évoluent plus vite qu’une documentation statique. Votre app doit raisonner avec les états fournis parSystemLanguageModel.