TIPS 54 · SIMULATORE

Un iPhone dentro de Claude

El simulador de iOS dentro de la app de escritorio de Claude: Claude compila tu app, la abre junto al chat y la prueba solo. Y el truco de las pantallas demo para hacer capturas reales del último commit, para los posts y para el App Store.

Qué es y por qué importa

Cuando Claude cambia una pantalla de tu app de iOS, normalmente te dice «hecho». Luego te toca a ti: compilar, abrir el simulador, llegar a esa pantalla y mirar. Y si no está bien, se lo vuelves a explicar con palabras.

En la app de escritorio de Claude para Mac está el panel iOS Simulator: un iPhone simulado junto al chat. Claude compila la app, la instala, la abre, toca los botones y lee la pantalla para comprobar su propio cambio. Tú lo ves en directo, y también puedes tocar.

La segunda mitad de la guía es el truco que usamos en STRIKT para los posts y para el App Store: pantallas demo que se abren ya llenas con un parámetro de arranque, para que cada captura sea real y salga del último commit. El panel está en beta pública, solo en la app de escritorio para macOS, en los planes Pro, Max, Team y Enterprise (salvo las organizaciones Enterprise con la configuración HIPAA).

1. Qué necesitas

  • Un Mac: el simulador de Apple solo funciona en macOS.
  • Xcode con la plataforma iOS, que trae los simuladores. Si faltan, descárgalos desde los ajustes de Xcode o con xcodebuild -downloadPlatform iOS.
  • La última versión de la app de escritorio de Claude: Claude > Check for Updates…
  • Una sesión local: en las sesiones en la nube o por SSH, Claude funciona en una máquina que no ve los simuladores de tu Mac.
  • Un proyecto que se compile para el simulador de iOS. Vale cualquier proyecto que lo haga.

2. Arráncalo y haz que compruebe su propio trabajo

  1. En la app de escritorio abre la pestaña Code e inicia una sesión en la carpeta del proyecto.
  2. Pídele que arranque o pruebe la app. El panel se abre solo en cuanto la app arranca; también puedes abrirlo tú con el botón iOS Simulator de la barra de título y luego Attach simulator.
  3. La primera vez, la app te pregunta si Claude puede usar ese simulador. El permiso vale para controlarlo y hacerle capturas, una vez por dispositivo. Compilar la app y abrir un enlace en el dispositivo siguen en cambio el modo de permisos de la sesión, porque la compilación ejecuta los scripts del proyecto en tu Mac.

La clave no es ver la app: es que Claude compruebe su cambio en vez de decirte «hecho» a ciegas. Ponlo en la petición:

El prompt
Mueve el botón «Guardar» al final de la pantalla del perfil. Luego compila, arranca la app en el simulador, abre el perfil, cambia el nombre y toca «Guardar». Cierra y vuelve a abrir la app y comprueba que el nombre sigue ahí. Mándame la captura de antes y la de después, y dime si algo no cuadra.

¿Quieres un dispositivo concreto? Escríbelo: «arráncala en el simulador del iPhone SE». Sirve para ver si un texto se corta mal en una pantalla pequeña.

3. Toca junto a él

  • Tocas y deslizas haciendo clic y arrastrando sobre la pantalla del panel.
  • Cmd+Shift+H para Inicio, Cmd+L para bloquear, Cmd+Flecha derecha para girar.
  • Cmd+S guarda una captura y Cmd+R una grabación de pantalla, en el Escritorio.
  • Cuando encima de la pantalla aparece Claude is using this device, no toques: el dispositivo es el mismo, y tus toques cambian lo que ve él.

Cada sesión tiene sus propios simuladores, hasta 4. Los que enciende Claude se apagan solos cuando cierras la app, cuando archivas la sesión o 10 minutos después de desconectarlos del panel.

4. El truco: pantallas demo ya llenas

Para un post o para el App Store necesitas la pantalla en su mejor momento: la clasificación llena, el día completado. Llegar ahí a mano significa cuentas de prueba, red, a veces la cámara, y muchos toques. Así acabas con capturas viejas o redibujadas, que ya no son la app real.

Nosotros lo hacemos así: en la app hay vistas demo que se abren con un argumento de arranque, es decir, una palabra que le pasas a la app al iniciarse, o con una variable de entorno. Arrancan ya llenas de datos realistas escritos en el código, sin cuenta, red ni cámara. Son las pantallas reales, con los mismos componentes: solo cambian los datos.

  • Una vista demo por cada pantalla que necesites, con un nombre claro.
  • Datos falsos pero creíbles: números que la app podría mostrar de verdad, ningún dato de personas reales. Cuando en el post se ven nombres y números de la demo, escribimos que es un ejemplo.
  • Todo el código demo dentro de #if DEBUG, para que no acabe en la app que publicas.
  • El idioma se elige al arrancar con -AppleLanguages "(it)" -AppleLocale it_IT: las mismas pantallas, en cada idioma.

Las vistas demo no tienes que escribirlas tú. Pídeselas a Claude:

El prompt
Añade a mi app vistas demo para las capturas. Si la app arranca con el argumento -DemoScreen seguido de un nombre (por ejemplo today, stats, profile), se salta el login y el onboarding y abre directamente esa pantalla, ya llena de datos realistas escritos en el código: sin red, cuenta, cámara ni peticiones de permiso. Usa los mismos componentes que las pantallas reales, solo cambian los datos. Mete todo dentro de #if DEBUG. Al final escribe en el README la lista de vistas y el comando para abrirlas en el simulador.

5. Las capturas del último commit

Con las vistas demo, una captura se convierte en un comando. Claude usa xcrun simctl, la herramienta de Xcode que controla los simuladores desde el terminal:

  1. Actualiza y compila la última versión para el simulador, y apunta el commit con git log -1 --oneline: así sabes de dónde sale cada imagen.
  2. Usa un simulador solo para las capturas, no uno encendido por otra sesión: xcrun simctl create con un nombre y el modelo de iPhone, y luego xcrun simctl boot.
  3. Barra de estado limpia: xcrun simctl status_bar <dispositivo> override --time 9:41 --batteryState charged --batteryLevel 100 --cellularBars 4 --wifiBars 3.
  4. Instala: xcrun simctl install <dispositivo> <ruta del archivo .app>.
  5. Abre la vista: xcrun simctl launch --terminate-running-process <dispositivo> <bundle id> -DemoScreen today. Las variables de entorno llegan a la app si las pones delante del comando con el prefijo SIMCTL_CHILD_.
  6. Dispara: xcrun simctl io <dispositivo> screenshot today.png. Luego mira la imagen: tiene que mostrar exactamente lo que dice el texto del post.
El prompt
Hazme las 6 capturas para el App Store del último commit. Actualiza el repositorio, apunta el commit, compila para el simulador y crea un simulador nuevo solo para esto, de un modelo con las medidas que acepta App Store Connect. Barra de estado a las 9:41 con batería y señal llenas. Luego abre una a una las vistas demo today, stats, workout, friends, profile y settings con -DemoScreen y guarda un PNG de cada una en screenshots/, con el commit en el nombre. Comprueba que los PNG no tengan transparencia, mira cada imagen y dime si algo está vacío, cortado o en el idioma equivocado.

Para el App Store puedes subir hasta 10 capturas por tamaño de pantalla, en PNG o JPEG, sin transparencia. Las medidas en píxeles cambian según el tipo de iPhone: compruébalas en la página Screenshot specifications de App Store Connect antes de elegir el simulador. Para las redes metemos la captura dentro de un iPhone entero con las proporciones reales; cuando el código cambia, basta con repetir la misma petición.

Errores comunes

  • Pedir «arregla la pantalla» sin pedir la comprobación en el simulador. Pide siempre: vuelve a arrancar, llega ahí, mándame la captura.
  • Iniciar sesión con cuentas reales en el simulador. Las capturas que Claude hace del dispositivo se envían a Anthropic y se quedan con la conversación: usa solo datos falsos.
  • Dejar el código demo fuera de #if DEBUG: acaba en la app publicada.
  • Hacer las capturas en un simulador que ya usa otra sesión: el estado de la app no es el que crees.
  • Esperar que Claude use tu iPhone real: solo controla dispositivos simulados. Para el teléfono real, lanzas tú la app desde Xcode y le mandas una captura.

Lista de comprobación

  • Xcode con la plataforma iOS y al menos un simulador
  • App de escritorio de Claude actualizada, sesión local en la pestaña Code
  • Vistas demo dentro de #if DEBUG, una por pantalla
  • Barra de estado a las 9:41 antes de las capturas
  • Commit apuntado junto a las imágenes
  • Cada captura revisada antes de usarla

Preguntas frecuentes

¿Funciona también desde el terminal, sin la app de escritorio?

El panel no, es de la app de escritorio. Desde la línea de comandos, Claude llega al simulador con computer use, es decir, controlando la pantalla como lo harías tú con el ratón. Los comandos xcrun simctl de la sección 5, en cambio, funcionan en cualquier sitio donde esté Xcode.

¿Funciona también con el iPad?

Sí. El panel muestra iPhone e iPad simulados, los mismos que gestionas en Xcode. Pídele a Claude que arranque la app en el simulador que necesites, o elígelo en el menú de dispositivos del panel.

¿Las pantallas demo no son una forma de hacer trampa?

No: son la app real, con el código de hoy. Solo los nombres y los números son inventados, y por eso los queremos creíbles. Hacer trampa es una pantalla dibujada a mano de algo que la app no hace.

← Todas las guías