TIPS 54 · SIMULATORE

Um iPhone dentro do Claude

O simulador de iOS dentro da app de computador do Claude: o Claude compila a tua app, abre-a ao lado do chat e testa-a sozinho. E o truque dos ecrãs de demonstração para tirar capturas reais do último commit, para os posts e para a App Store.

O que é e porque importa

Quando o Claude muda um ecrã da tua app de iOS, normalmente diz-te «feito». Depois é contigo: compilar, abrir o simulador, chegar a esse ecrã e ver. E se não estiver bem, voltas a explicar-lhe por palavras.

Na app de computador do Claude para Mac há o painel iOS Simulator: um iPhone simulado ao lado do chat. O Claude compila a app, instala-a, abre-a, toca nos botões e lê o ecrã para verificar a sua própria alteração. Tu vês em direto, e também podes tocar.

A segunda metade do guia é o truque que usamos na STRIKT para os posts e para a App Store: ecrãs de demonstração que abrem já cheios com um parâmetro de arranque, para que cada captura seja real e venha do último commit. O painel está em beta pública, só na app de computador para macOS, nos planos Pro, Max, Team e Enterprise (exceto organizações Enterprise com a configuração HIPAA).

1. O que precisas

  • Um Mac: o simulador da Apple só corre em macOS.
  • O Xcode com a plataforma iOS, que traz os simuladores. Se faltarem, descarrega-os nas definições do Xcode ou com xcodebuild -downloadPlatform iOS.
  • A versão mais recente da app de computador do Claude: Claude > Check for Updates…
  • Uma sessão local: nas sessões na cloud ou por SSH, o Claude corre numa máquina que não vê os simuladores do teu Mac.
  • Um projeto que compile para o simulador de iOS. Serve qualquer projeto que o faça.

2. Põe-no a andar e faz com que verifique o próprio trabalho

  1. Na app de computador abre o separador Code e inicia uma sessão na pasta do projeto.
  2. Pede-lhe para arrancar ou testar a app. O painel abre-se sozinho assim que a app arranca; também o podes abrir tu com o botão iOS Simulator na barra de título e depois Attach simulator.
  3. Da primeira vez, a app pergunta-te se o Claude pode usar esse simulador. O consentimento vale para o controlar e tirar capturas, uma vez por dispositivo. Compilar a app e abrir um link no dispositivo seguem antes o modo de permissões da sessão, porque a compilação corre os scripts do projeto no teu Mac.

O que interessa não é ver a app: é o Claude verificar a alteração em vez de te dizer «feito» de boa-fé. Põe isso no pedido:

O prompt
Muda o botão «Guardar» para o fundo do ecrã do perfil. Depois compila, arranca a app no simulador, abre o perfil, muda o nome e toca em «Guardar». Fecha e volta a abrir a app e confirma que o nome ficou. Manda-me a captura de antes e de depois, e diz-me se alguma coisa não bate certo.

Queres um dispositivo específico? Escreve-o: «arranca-a no simulador do iPhone SE». Serve para ver se um texto quebra mal num ecrã pequeno.

3. Toca junto com ele

  • Tocas e deslizas clicando e arrastando no ecrã do painel.
  • Cmd+Shift+H para o ecrã principal, Cmd+L para bloquear, Cmd+Seta para a direita para rodar.
  • Cmd+S guarda uma captura e Cmd+R uma gravação do ecrã, na Secretária.
  • Quando por cima do ecrã aparece Claude is using this device, não toques: o dispositivo é o mesmo, e os teus toques mudam o que ele vê.

Cada sessão tem os seus próprios simuladores, até 4. Os que o Claude liga desligam-se sozinhos quando fechas a app, quando arquivas a sessão ou 10 minutos depois de os desligares do painel.

4. O truque: ecrãs de demonstração já cheios

Para um post ou para a App Store precisas do ecrã no seu melhor momento: a classificação cheia, o dia concluído. Chegar lá à mão quer dizer contas de teste, rede, às vezes a câmara, e muitos toques. Acabas com capturas antigas ou redesenhadas, que já não são a app real.

Nós fazemos assim: a app tem vistas de demonstração que abrem com um argumento de arranque, ou seja, uma palavra que passas à app quando ela arranca, ou com uma variável de ambiente. Arrancam já cheias de dados realistas escritos no código, sem conta, rede nem câmara. São os ecrãs reais, com os mesmos componentes: só mudam os dados.

  • Uma vista de demonstração para cada ecrã de que precisas, com um nome claro.
  • Dados falsos mas credíveis: números que a app poderia mesmo mostrar, nenhum dado de pessoas reais. Quando no post se veem nomes e números da demonstração, escrevemos que é um exemplo.
  • Todo o código de demonstração dentro de #if DEBUG, para não acabar na app que publicas.
  • A língua escolhe-se no arranque com -AppleLanguages "(it)" -AppleLocale it_IT: os mesmos ecrãs, em cada língua.

As vistas de demonstração não tens de ser tu a escrevê-las. Pede-as ao Claude:

O prompt
Acrescenta à minha app vistas de demonstração para as capturas. Se a app arrancar com o argumento -DemoScreen seguido de um nome (por exemplo today, stats, profile), salta o login e o onboarding e abre logo esse ecrã, já cheio de dados realistas escritos no código: sem rede, conta, câmara nem pedidos de permissão. Usa os mesmos componentes dos ecrãs reais, só mudam os dados. Põe tudo dentro de #if DEBUG. No fim, escreve no README a lista das vistas e o comando para as abrir no simulador.

5. As capturas do último commit

Com as vistas de demonstração, uma captura passa a ser um comando. O Claude usa o xcrun simctl, a ferramenta do Xcode que controla os simuladores a partir do terminal:

  1. Atualiza e compila a versão mais recente para o simulador, e aponta o commit com git log -1 --oneline: assim sabes de onde vem cada imagem.
  2. Usa um simulador só para as capturas, não um ligado por outra sessão: xcrun simctl create com um nome e o modelo de iPhone, depois xcrun simctl boot.
  3. Barra de estado limpa: xcrun simctl status_bar <dispositivo> override --time 9:41 --batteryState charged --batteryLevel 100 --cellularBars 4 --wifiBars 3.
  4. Instala: xcrun simctl install <dispositivo> <caminho do ficheiro .app>.
  5. Abre a vista: xcrun simctl launch --terminate-running-process <dispositivo> <bundle id> -DemoScreen today. As variáveis de ambiente chegam à app se as puseres antes do comando com o prefixo SIMCTL_CHILD_.
  6. Captura: xcrun simctl io <dispositivo> screenshot today.png. Depois olha para a imagem: tem de mostrar exatamente o que diz o texto do post.
O prompt
Faz-me as 6 capturas para a App Store a partir do último commit. Atualiza o repositório, aponta o commit, compila para o simulador e cria um simulador novo só para isto, de um modelo com as medidas que o App Store Connect aceita. Barra de estado às 9:41 com bateria e rede cheias. Depois abre uma a uma as vistas de demonstração today, stats, workout, friends, profile e settings com -DemoScreen e guarda um PNG de cada em screenshots/, com o commit no nome. Confirma que os PNG não têm transparência, olha para cada imagem e diz-me se alguma coisa está vazia, cortada ou na língua errada.

Para a App Store podes carregar até 10 capturas por tamanho de ecrã, em PNG ou JPEG, sem transparência. As medidas em píxeis mudam com o tipo de iPhone: confirma-as na página Screenshot specifications do App Store Connect antes de escolheres o simulador. Para as redes sociais pomos a captura dentro de um iPhone inteiro com as proporções reais; quando o código muda, basta repetir o mesmo pedido.

Os erros mais comuns

  • Pedir «arranja o ecrã» sem pedir a verificação no simulador. Pede sempre: volta a arrancar, chega lá, manda-me a captura.
  • Entrar com contas reais no simulador. As capturas que o Claude tira do dispositivo vão para a Anthropic e ficam com a conversa: usa só dados falsos.
  • Deixar o código de demonstração fora de #if DEBUG: acaba na app publicada.
  • Tirar as capturas num simulador que outra sessão já está a usar: o estado da app não é o que pensas.
  • Esperar que o Claude use o teu iPhone real: só controla dispositivos simulados. Para o telemóvel real, lanças tu a app a partir do Xcode e mandas-lhe uma captura.

Checklist

  • Xcode com a plataforma iOS e pelo menos um simulador
  • App de computador do Claude atualizada, sessão local no separador Code
  • Vistas de demonstração dentro de #if DEBUG, uma por ecrã
  • Barra de estado às 9:41 antes das capturas
  • Commit anotado ao lado das imagens
  • Cada captura vista antes de a usar

Perguntas frequentes

Também funciona a partir do terminal, sem a app de computador?

O painel não, é da app de computador. A partir da linha de comandos, o Claude chega ao simulador com computer use, ou seja, a controlar o ecrã como tu farias com o rato. Já os comandos xcrun simctl da secção 5 funcionam em qualquer sítio onde haja Xcode.

Também funciona com o iPad?

Sim. O painel mostra iPhones e iPads simulados, os mesmos que geres no Xcode. Pede ao Claude para arrancar a app no simulador de que precisas, ou escolhe-o no menu de dispositivos do painel.

Os ecrãs de demonstração não são uma forma de fazer batota?

Não: são a app real, com o código de hoje. Só os nomes e os números são inventados, e por isso queremo-los credíveis. Fazer batota é um ecrã desenhado à mão de uma coisa que a app não faz.

← Todos os guias