Programando apps iOS pela nuvem: Claude Code e Revyl
por Marcello Gonzatto Birkan, Fundador
No post anterior eu mostrei uma correção pequena no Coloreku que foi escrita, compilada e testada num iPhone sem o meu Mac sequer ligado. Era uma prova de conceito. Desta vez eu quis ver o que acontece quando isso vira o jeito normal de trabalhar, e passei uma madrugada inteira programando dois apps iOS só pela nuvem: entre 23h e 7h saíram 19 PRs mergeados, e o Xcode ficou fechado o tempo todo.

A stack
A primeira peça são as sessões do Claude Code na nuvem. Cada tarefa vira uma sessão num container Linux da Anthropic, com o repositório clonado e o agente trabalhando sozinho. Eu abro pelo app do desktop, pelo celular ou por uma thread do Claude Projects, descrevo o que quero e vou fazer outra coisa. A sessão lê o código, escreve o Swift, abre o PR, acompanha o CI e resolve conflito quando outra sessão mexeu no mesmo arquivo. Como cada uma roda isolada, dá para ter várias ao mesmo tempo, e no pico da madrugada eram quatro.
Só que um container Linux não tem Xcode nem simulador, e é aí que entra o Revyl. O CLI dele manda o código para um runner macOS com Xcode 26.5, compila o .app e sobe um iPhone simulado na nuvem que o próprio agente controla. O agente instala o app, abre, toca, arrasta e tira foto da tela, e as fotos voltam para a conversa como prova.
Tudo termina num PR no GitHub, com uma seção de verificação escrita pela sessão contando o que compilou, o que ela viu no simulador e o que ficou de fora.
Como uma tarefa anda
- Eu mando uma frase, tipo "traz de volta o carrossel de fotos na tela de boas-vindas".
- A sessão lê o
CLAUDE.md, que tem uma seção só para a nuvem: se a variávelCLAUDE_CODE_REMOTEestiver ligada, o caminho é o Revyl; no Mac, continua o Xcode de sempre. - Escreve o código e roda
revyl build --platform ios --remote. O primeiro build do Weightics levou 2m40s. - Sobe o device, percorre a tela e tira as fotos. No carrossel, duas fotos com segundos de diferença mostram as imagens andando; com o Reduzir Movimento ligado, as duas saem idênticas, que era exatamente o pedido.
- Desliga o device, abre o PR e fica de olho até o merge.
O que saiu numa noite
O Weightics ganhou um plano Premium com assinatura anual e trial, paridade com o Happy Scale (metas, marcos, histórico editável, importação de CSV), um modo de medicação para quem usa GLP-1, relatórios semanais, mensais e anuais, composição corporal digitada à mão e uma limpeza de umas 4.000 linhas com a saída da balança Bluetooth. O Coloreku ganhou um modo novo no estilo do Queens do LinkedIn, com um solucionador que gradua cada tabuleiro pela técnica que ele exige e 80 fases em 8 capítulos. Entre uma feature e outra eu ia mandando correções de 4 a 6 minutos, enquanto as maiores ainda rodavam.
Onde o Mac ainda entra
O Mac continua na história. O simulador na nuvem tem toque mais lento que o de verdade, o build remoto é de Debug, e a suíte completa de testes rodando no Mac pegou um bug que tinha passado pela nuvem naquela mesma noite. Então a divisão hoje é esta: a nuvem produz e prova cada mudança, e o Mac dá a palavra final antes de uma versão ir para a loja.
A assinatura não fica com nenhum dos dois. Configurei o Xcode Cloud uma vez, no Mac, e agora basta o PR ser aprovado para ele gerar o build assinado para o TestFlight e para a App Store.
O grosso do trabalho, a parte que antes me prendia na frente do Xcode, agora acontece enquanto eu faço outra coisa. Se você tem um app iOS esperando alguém ter tempo, me conta.