Cómo enseñar a Claude Code a controlar un simulador de iOS
Imagina: estás sentado en la terminal, chateando con Claude Code, y en lugar de abrir Xcode manualmente, buscar el botón correcto en el simulador o copiar logs de la consola, simplemente escribes: "Mira cómo se ve la pantalla de inicio de sesión en iPhone 15 y toca el botón de iniciar sesión." Y la IA lo hace. Suena a magia, pero en realidad es el trabajo de la colección de scripts ios-simulator-skill.
Encontré este repositorio buscando una forma de integrar IA agentiva con el desarrollo móvil. El autor del proyecto, Conor Ladhy, собрал 22 scripts de Python y Bash que convierten a Claude en un ingeniero de QA o asistente de desarrollo completo, capaz de "ver" la interfaz de una app e interactuar con ella.
¿Por qué molestarse si tienes Xcode?
Por lo general, la interacción de un agente de IA con un proyecto de iOS se convierte en una pesadilla debido a los enormes logs de compilación y las capturas de pantalla pesadas. Si le das a Claude la salida estándar xcodebuild, la ventana de contexto se inunda de basura en un par de segundos.
Este proyecto resuelve el problema de forma elegante. Los scripts actúan como un filtro: alimentan a la red neuronal solo lo esencial. En lugar de 400 líneas de logs de autenticación, Claude recibe 15 líneas de texto limpio. Esto ahorra tokens y, más importante aún, evita que el modelo "alucine" debido a la sobrecarga de información.
Qué puede hacer este conjunto de herramientas
El proyecto aborda dos tareas principales: compilar la app y manipular el simulador.
Compilación inteligente sin ruido
El script build_and_test.py envuelve las herramientas estándar de Apple. Cuando ejecutas una compilación, Claude ve solo una línea corta de estado y un ID de resultado. Si algo sale mal, el modelo puede solicitar específicamente errores o advertencias para ese ID. Esto se llama revelación progresiva de datos: no volcamos todo de golpe, sino que proporcionamos detalles bajo demanda.
Navegación mediante Accessibility
Esta es probablemente la característica más genial. En lugar de intentar adivinar las coordenadas de los botones en una captura de pantalla (lo cual a menudo lleva a fallos), los scripts usan la API de Accessibility de iOS. Claude busca elementos por su significado semántico. Por ejemplo, un comando para encontrar el texto "Iniciar sesión" y hacer clic en él funciona de manera más fiable que hacer clic en las coordenadas x: 320, y: 400. Además, una descripción textual del árbol de elementos ocupa cientos de veces menos tokens que una imagen.
Optimización de capturas de pantalla
Si no puedes prescindir de la verificación visual (por ejemplo, necesitas comparar el diseño o encontrar un error de layout), los scripts comprimen y redimensionan automáticamente las capturas de pantalla. Esto reduce la carga del contexto en un 90-95%.
Cómo funciona internamente
El repositorio contiene un conjunto de scripts de Python que llaman a xcrun simctl y idb (una herramienta de Facebook para automatización de iOS).
Aquí hay un par de herramientas interesantes de la lista:
screen_mapper.py— analiza la pantalla y compila una lista de todos los elementos interactivos.gesture.py— puede realizar gestos como deslizar, pellizcar e incluso tirar para actualizar.privacy_manager.py— te permite otorgar permisos a una app para fotos, contactos o ubicación con un solo comando. Esto es increíblemente conveniente para pruebas automatizadas donde antes tenías que hacer clic manualmente a través de las alertas del sistema.
Curiosamente, el autor incluso añadió accessibility_audit.py para verificar el cumplimiento de la app con los estándares WCAG. Claude puede recorrer las pantallas y decirte dónde olvidaste añadir etiquetas para VoiceOver.
Cómo ejecutarlo tú mismo
El proyecto está posicionado como una "skill" para Claude Code, pero en realidad es un conjunto de scripts independientes que también se pueden usar por separado.
Si estás usando Claude Code, la instalación se ve así:
/plugin marketplace add conorluddy/ios-simulator-skill
/plugin install ios-simulator-skill@conorluddy
Las dependencias que necesitarás son Xcode Command Line Tools, Python 3 y preferiblemente idb (instalado mediante brew). Si planeas comparar capturas de pantalla, también instala la librería Pillow mediante pip.
Beneficios prácticos
¿Para quién es útil? En primer lugar, para quienes quieren automatizar tareas rutinarias. Por ejemplo, puedes pedirle a Claude que:
- "Compila el proyecto, lánzalo en iPhone 14 Pro y toma capturas de pantalla de todas las pantallas para la documentación."
- "Encuentra por qué la prueba falla en la etapa de autorización y muéstrame los logs de los últimos 2 minutos nada más."
- "Verifica cómo se comporta la app con internet lento y geolocalización desactivada."
En las pruebas del propio autor, la combinación de Claude + ios-simulator-skill mostró un 100% de completitud de escenarios, mientras que Claude "desnudo" sin estas herramientas tuvo éxito menos de la mitad de las veces.
¿Vale la pena probarlo?
Si eres desarrollador de iOS y ya has comenzado a integrar agentes de IA en tu flujo de trabajo, entonces este proyecto es imprescindible. Elimina el principal dolor: la incompatibilidad de las herramientas verbosas de Apple con la concisión que necesitan los modelos de lenguaje.
Por supuesto, el proyecto requiere configuración del entorno, y idb a veces puede ser delicado en versiones nuevas de macOS, pero la idea de controlar un simulador a través de un árbol de elementos semántico es exactamente lo que debería parecer la automatización moderna. Los scripts están escritos de forma sencilla, son fáciles de modificar para tus necesidades, o puedes extraer solo lo que necesites para tus pipelines de CI/CD.
Proyectos relacionados