Comment apprendre à Claude Code à contrôler un simulateur iOS
Imaginez : vous êtes assis au terminal, en train de discuter avec Claude Code, et au lieu d'ouvrir manuellement Xcode, de chercher le bon bouton dans le simulateur ou de copier les logs depuis la console, vous écrivez simplement : « Vérifie à quoi ressemble l'écran de connexion sur iPhone 15 et appuie sur le bouton de connexion. » Et l'IA le fait. Ça ressemble à de la magie, mais en réalité c'est l'œuvre de la collection de scripts ios-simulator-skill.
Je suis tombé sur ce dépôt en cherchant un moyen d'intégrer l'IA agentique avec le développement mobile. L'auteur du projet, Conor Ladhy, a rassemblé 22 scripts Python et Bash qui font de Claude un véritable ingénieur QA ou un assistant de développement capable de « voir » l'interface d'une application et d'interagir avec elle.
Pourquoi se compliquer si on a Xcode
D'habitude, l'interaction d'un agent IA avec un projet iOS se transforme en cauchemar à cause des logs de build massifs et des captures d'écran volumineuses. Si vous donnez à Claude la sortie standard xcodebuild, la fenêtre de contexte se retrouve inondée de déchets en quelques secondes.
Ce projet résout le problème avec élégance. Les scripts servent de filtre : ils n'alimentent le réseau neuronal que par l'essentiel. Au lieu de 400 lignes de logs d'authentification, Claude reçoit 15 lignes de texte propre. Ça économise des tokens et, plus important encore, ça empêche le modèle de « halluciner » à cause de la surcharge d'informations.
Ce que cet ensemble d'outils peut faire
Le projet aborde deux tâches principales : la construction de l'application et la manipulation du simulateur.
Build intelligent sans le bruit
Le script build_and_test.py enveloppe les outils Apple standard. Quand vous lancez un build, Claude ne voit qu'une courte ligne de statut et un ID de résultat. Si quelque chose se passe mal, le modèle peut demander spécifiquement les erreurs ou avertissements pour cet ID. C'est ce qu'on appelle la divulgation progressive des données — on ne déverse pas tout d'un coup, mais on fournit les détails sur demande.
Navigation via Accessibility
C'est probablement la fonctionnalité la plus cool. Au lieu d'essayer de deviner les coordonnées des boutons sur une capture d'écran (ce qui conduit souvent à des erreurs), les scripts utilisent l'API iOS Accessibility. Claude recherche les éléments par leur signification sémantique. Par exemple, une commande pour trouver le texte « Connexion » et cliquer dessus fonctionne de manière plus fiable que de cliquer aux coordonnées x: 320, y: 400. De plus, une description textuelle de l'arbre des éléments prend des centaines de fois moins de tokens qu'une image.
Optimisation des captures d'écran
Si vous ne pouvez pas vous passer de vérification visuelle (par exemple, vous devez comparer un design ou trouver un bug de mise en page), les scripts compressent et redimensionnent automatiquement les captures d'écran. Cela réduit la charge de contexte de 90 à 95 %.
Comment ça fonctionne en coulisses
Le dépôt contient une série de scripts Python qui appellent xcrun simctl et idb (un outil Facebook pour l'automatisation iOS).
Voici quelques outils intéressants de la liste :
screen_mapper.py— analyse l'écran et compile une liste de tous les éléments interactifs.gesture.py— peut effectuer des balayages, des pincements et même un pull-to-refresh.privacy_manager.py— vous permet d'accorder à une application les permissions pour les photos, les contacts ou la localisation avec une seule commande. C'est incroyablement pratique pour les tests automatisés où vous deviez auparavant cliquer manuellement dans les alertes système.
Il est intéressant de noter que l'auteur a même ajouté accessibility_audit.py pour vérifier la conformité des applications avec les normes WCAG. Claude peut parcourir les écrans et vous dire où vous avez oublié d'ajouter des labels pour VoiceOver.
Comment le lancer vous-même
Le projet se positionne comme une « skill » pour Claude Code, mais en réalité c'est un ensemble de scripts autonomes qui peuvent également être utilisés séparément.
Si vous utilisez Claude Code, l'installation ressemble à ceci :
/plugin marketplace add conorluddy/ios-simulator-skill
/plugin install ios-simulator-skill@conorluddy
Les dépendances dont vous aurez besoin sont Xcode Command Line Tools, Python 3 et de préférence idb (installé via brew). Si vous prévoyez de comparer des captures d'écran, installez également la bibliothèque Pillow via pip.
Avantages pratiques
À qui est-ce utile ? Avant tout, à ceux qui veulent automatiser les tâches routinières. Par exemple, vous pouvez demander à Claude de :
- « Construire le projet, le lancer sur iPhone 14 Pro et prendre des captures d'écran de tous les écrans pour la documentation. »
- « Trouver pourquoi le test plante à l'étape d'autorisation et me montrer les logs des 2 dernières minutes seulement. »
- « Vérifier comment l'application se comporte avec un internet lent et la géolocalisation désactivée. »
Dans les propres tests de l'auteur, la combinaison Claude + ios-simulator-skill a montré 100 % de complétion des scénarios, tandis que Claude « nu » sans ces outils a réussi moins de la moitié du temps.
Est-ce que ça vaut le coup d'essayer
Si vous êtes développeur iOS et que vous avez déjà commencé à intégrer des agents IA dans votre flux de travail, alors ce projet est indispensable. Il supprime le principal point douloureux : l'incompatibilité des outils Apple verbeux avec la concision dont les modèles de langage ont besoin.
Bien sûr, le projet nécessite une configuration de l'environnement, et idb peut parfois être capricieux sur les nouvelles versions de macOS, mais l'idée de contrôler un simulateur via un arbre d'éléments sémantique est exactement ce que devrait ressembler l'automatisation moderne. Les scripts sont écrits simplement, ils sont faciles à adapter à vos besoins, ou vous pouvez extraire uniquement ce dont vous avez besoin pour vos pipelines CI/CD.
Projets similaires