Ninguém Te Conta: O Trabalho Real Começa Depois que a IA Diz 'Pronto'
Estou construindo meu primeiro app iOS sem saber Swift. O Claude Code estruturou tudo em uma tarde. Então abri o Simulator, e o trabalho real começou.
Nunca abri o Xcode na vida.
Não sei Swift. Não sei SwiftUI. Não sei o que um macro @Observable faz nem por que o AVAudioSession precisa de uma categoria. Dois dias atrás, se você me perguntasse o que era StoreKit, eu teria chutado que era um app de móveis.
E ainda assim estou construindo um app iOS nativo — e descobrindo que o código gerado por IA te leva cerca de 60% do caminho. Os últimos 40%, a parte em que um codebase se torna um produto, é inteiramente trabalho humano. É isso que nenhum dos posts "construí X com IA" jamais menciona.
O app é para o DIALØGUE — meu gerador de podcast com IA. Não é um wrapper web. Não é React Native. Um app SwiftUI de verdade com Apple Sign-In, compras no app, um player de áudio com controles na tela de bloqueio e localização em 7 idiomas.
Por que agora?
Em 3 de fevereiro, a Apple anunciou que o Xcode 26.3 suportaria programação agêntica — com o Anthropic's Claude Agent SDK integrado. Não só autocomplete. Não só sugestões turno a turno. Agentes autônomos completos que podem explorar a estrutura do seu projeto, pesquisar a documentação da Apple, capturar Xcode Previews para ver o que estão construindo e iterar por builds e correções por conta própria.
O Claude Code agora pode falar com o Xcode por MCP. Ele pode ver o Simulator. Pode ler avisos e mensagens de erro de build. Pode olhar para o que a interface realmente parece e decidir se precisa mudar.
Isso mudou o cálculo para mim. Eu estava pensando em um app iOS nativo há meses, mas ficava adiando porque não sei Swift. Com o Claude Agent no Xcode, a pergunta mudou de "consigo aprender Swift rápido o suficiente?" para "consigo descrever o que quero com clareza suficiente?"
Ainda não está pronto. Ainda estou na fase de polimento final, ainda encontrando coisas que não funcionam direito, ainda aprendendo Swift lendo o código que o Claude escreveu pra mim. Mas a história até agora — assim como a reconstrução do DIALØGUE em 14 dias — reforçou a mesma lição desconfortável.
O Que o Claude Code Construiu em Uma Tarde?
Aqui está como o meu histórico do git fica:
| Fase | O que aconteceu | Commits |
|---|---|---|
| Documento de design + plano de implementação | Decisões de arquitetura, 12 tarefas | 2 |
| Claude constrói "o app inteiro" | Scaffold → auth → biblioteca → detalhe → studio → StoreKit → acessibilidade | 6 |
| O humano abre o Simulator | Corrigir, testar, redesenhar, corrigir, testar, redesenhar | 12+ (e contando) |
A primeira fase — o Claude Code estruturando o app inteiro — foi genuinamente impressionante. Em uma tarde, fui de um projeto Xcode vazio para um app compilando com:
- Apple Sign-In, Google OAuth, auth por email/senha e MFA
- Um wizard de criação de podcast em 5 etapas
- Uma biblioteca de podcasts com busca e pull-to-refresh
- Playback de áudio com
AVPlayer - Compras no app StoreKit 2 com verificação no servidor
- Studio (gerenciamento de shows recorrentes)
- Localização em 7 idiomas
- Blog webview e labels de acessibilidade
69 arquivos Swift. 7.568 linhas de código. Escrevi aproximadamente zero delas.
Esta é a parte em que todo post sobre IA termina. O screenshot triunfante. O momento "olha o que construí". A contagem de commits e linhas e o cronograma que não deveria ser possível.
Mas eu não tinha um app. Tinha um codebase que compilava.
O Que Quebrou Quando Usei o App de Verdade?
Toquei por aí. Coisas carregavam. Algumas telas pareciam ok. Pensei: "Talvez isso vá realmente funcionar."
Então tentei criar um podcast.
O Botão "Done" Jogava Fora Seu Trabalho
O editor de script te deixa editar linhas individuais de diálogo antes de gerar o áudio. Tem um botão "Done". Editei uma linha, toquei em Done e... minhas edições sumiram.
O botão estava saindo do modo de edição antes de salvar. Parecia correto no código — editMode = false — mas a sequência estava errada. Salvar, depois sair.
Esse é o tipo de bug que faz o usuário jogar o celular na parede. E a IA o escreveu porque a lógica é tecnicamente válida — só que está de trás para frente.
Dados Reais Travavam o App
Naveguei para um podcast que tinha sido gerado pelo backend de produção. Crash. O campo research_facts voltava como um array de objetos ({fact, source, reference, confidence}), mas o modelo Swift esperava um array de strings. O mesmo padrão em todo lugar — enums de status eram case-sensitive (completed vs COMPLETE), então cada badge de status mostrava "Unknown."
O Claude construiu o que o documento de design dizia. O banco de dados de produção discordava. Esse é o tipo de coisa que você só descobre com dados reais, não com dados de teste.
WebSocket Realtime Simplesmente... Não Conectava
Na web, o Supabase Realtime funciona ótimo. No iOS, a conexão WebSocket falhava silenciosamente. Sem erro, sem crash. Só... sem atualizações.
A correção foi uma abordagem de cinto-e-suspensórios: manter a assinatura Realtime mas adicionar um fallback de polling de 5 segundos que roda independentemente. Não é elegante, mas é confiável. Redes móveis são imprevisíveis, e seus usuários não vão se importar com como as atualizações de status chegam — só que chegam.
O App Inteiro Usava as Cores do Sistema
Cada tela era o azul e cinza padrão do iOS. Modo claro. O app web tem uma estética dark mode cuidadosamente projetada — âmbar e dourado sobre carvão, o que chamo de "Studio Warmth". O Claude havia diligentemente construído cada tela, mas nas cores do sistema.
Tive que tocar todos os 24 arquivos de view. Substituir cada Color.accentColor por Theme.brandPrimary. Forçar .preferredColorScheme(.dark) na raiz.
Isso não é um bug. A IA fez exatamente o que era razoável. Mas "razoável" e "bom" são coisas diferentes.

A Revisão do Outline Era um Botão que Dizia "Approve"
O fluxo de geração de podcast tem uma etapa interativa: a IA gera um outline e você o revisa antes de continuar. Na web, isso é uma interface de cards expansíveis mostrando a descrição de cada segmento, pontos de discussão e fontes de pesquisa.
No iOS, o Claude construiu um botão que dizia "Approve." Só isso. Sem conteúdo do outline. Sem maneira de ver o que você está aprovando. O mesmo para revisão de script — um botão, não um editor.
O Áudio Não Tocava
O player de áudio parecia correto. Botão de play, barra de progresso, controles na tela de bloqueio. Mas tocar em play não fazia nada. A cadeia de resolução de URL estava quebrada — URLs de download assinados falhavam no ambiente de dev, e as URLs de fallback usavam hostnames Docker internos que o Simulator não conseguia resolver.
Depois de corrigir o áudio e redesenhar a página de detalhe do podcast com controles de play integrados, a barra mini de player persistente no fundo de cada aba era redundante. Deletei. Deletar código que funciona mas não deveria existir — isso é um julgamento puramente humano.
Como É Código Gerado por IA vs um Produto Real?
Código gerado por IA é arquiteturalmente sólido, mas experiencialmente vazio. Não estou reclamando — o que o Claude Code fez é notável. Ir de "não sei Swift" para um app compilando com auth, IAP, playback de áudio e localização em 7 idiomas em uma tarde? Isso teria levado meses.
Mas há uma narrativa por aí — em posts de blog, tweets, vídeos de demonstração — de que a IA escreve o app e você só revisa. Publica. Pronto.
Não foi o que aconteceu. Aqui está o que realmente aconteceu:
-
O Claude construiu um scaffold arquiteturalmente sólido. A decisão de ir Supabase-direto (sem camada de API personalizada) significou que o app iOS fala com o mesmo backend que o app web. Auth, banco de dados, realtime, armazenamento — tudo reutilizado. Só precisei de um novo componente no servidor (uma Edge Function
verify-ios-purchase). Essa escolha arquitetural foi brilhante e economizou um tempo enorme. -
O Claude acertou nas partes difíceis. Apple Sign-In com um nonce criptográfico via CryptoKit. Fluxo de compra StoreKit 2 com verificação no servidor. Configuração de
AVAudioSessionpara playback em segundo plano. Essas coisas teriam me levado dias para descobrir na documentação sozinho. -
O Claude errou nas partes de produto. Não errado como buggy — errado como "isso é o que um codebase parece, não o que um app parece."
| O que o Claude construiu | O que era realmente necessário |
|---|---|
| Um botão que diz "Approve" | Um revisor de outline expansível com fontes de pesquisa |
| Cores do sistema em cada tela | 24 arquivos de tokens de marca, dark mode forçado |
| Decoder JSON para o schema documentado | Decoder personalizado para o que o banco de dados realmente retorna |
| Assinaturas Realtime (padrão web) | Realtime + fallback de polling (padrão mobile) |
| Um wizard de criação que funciona | Um wizard de criação que cabe na tela de um celular |

A coluna da esquerda é código correto. A coluna da direita é um produto.
O Que Devemos Dizer à Próxima Geração Sobre IA?
Escrevi algumas semanas atrás sobre ter uma filha adolescente e não saber o que dizer a ela sobre o seu futuro. Sobre como as habilidades de execução estão sendo automatizadas e o piso para "consigo pensar criticamente" continua subindo.
Construir este app iOS deixou isso mais nítido — mas não na direção que esperava.
As habilidades de implementação — sintaxe Swift, layout SwiftUI, API StoreKit — eu não precisei delas. O Claude cuidou de tudo isso. Se "aprenda a programar" significa "aprenda a sintaxe e as APIs de uma linguagem de programação," esse conselho tem uma data de validade medida em meses, não anos.
Mas aqui está o que eu precisei: gosto de produto, julgamento de design e a disciplina de abrir o Simulator e realmente usar a coisa em vez de confiar na revisão do código.
Isso não é só "gosto". Requer pensamento crítico — pensamento crítico de verdade, não a versão de buzzword. O tipo em que você olha para algo que compila, que passa nos testes, que uma IA confiadamente te diz que está pronto, e você diz: "Não. Isso não está certo. Deixa eu te mostrar por quê."
Essa é a parte que não podemos terceirizar. Ainda não, talvez nunca. A IA é extraordinária em gerar soluções. É péssima em saber quando uma solução está errada de maneiras que não aparecem nos logs. Ela não usa o produto. Ela não segura o celular. Ela não sente a frustração de um botão Done que joga fora seu trabalho. Alguém precisa dirigir. Alguém precisa ficar no loop. Alguém precisa fornecer o check intuitivo que diz "isso funciona mas não é bom."
Talvez seja isso que devo dizer à minha filha. Não "aprenda a programar" — essa janela está se fechando. Mas também não "só aprenda a pensar criticamente," porque isso é vago demais. Algo mais específico:
Aprenda a ser a pessoa que abre o Simulator.
Seja aquela que testa a coisa real com dados reais e percebe o que está errado antes dos seus usuários. Construa gosto usando produtos ótimos e produtos horríveis e entendendo a diferença. Desenvolva a confiança de recuar em algo que é tecnicamente correto mas experiencialmente quebrado — mesmo quando a coisa que está te confrontando é uma IA que soa muito certa.
O humano no loop não é uma formalidade. É o produto inteiro.
Ainda não tenho certeza se é suficiente. Mas é a coisa mais específica que consegui dizer até agora.
Qual é o Estado Atual do App iOS?
O app ainda está em desenvolvimento. Estou na fase de polimento — a fase que os posts de blog sobre IA fingem que não existe. Testando dados reais de produção em cada view. Encontrando os edge cases que só aparecem quando você realmente usa a coisa.
Meu log do git dos últimos dois dias tem mais commits fix: do que feat:. Isso parece certo. As funcionalidades foram a parte fácil. As correções são o produto.
Aqui está o estado atual:
| O que funciona | O que falta |
|---|---|
| Auth (Apple, Google, email, MFA) | Upload de PDF (document picker + Supabase Storage) |
| Wizard de criação em 5 etapas com personalização completa | Download offline de MP3 |
| Detalhe de podcast com revisão de outline/script | Push notifications (adiado para v1.1) |
| Playback de áudio com controles na tela de bloqueio | Distribuição beta pelo TestFlight |
| Compras no app StoreKit 2 | Submissão na App Store |
| Studio (shows recorrentes) | |
| Localização em 7 idiomas | |
| Design system Studio Warmth |
Vou escrever um follow-up quando o app chegar na App Store. Ou quando for rejeitado. Conhecendo a Apple, a história da rejeição pode ser mais interessante.
Com Que Rapidez o Desenvolvimento com IA Está Acelerando?
Deixa eu atualizar a tabela que continua me assombrando:
| Projeto | Complexidade | Tempo para Construir |
|---|---|---|
| DIALØGUE v1 | MVP gerador de podcast | ~6 meses |
| STRAŦUM | 10 agentes de IA, 11 frameworks, multi-tenant | 75 dias |
| Redesign do site | Reformulação do frontend WordPress | 3 dias |
| DIALØGUE v2 | Reconstrução completa do app web | 14 dias |
| Migração do blog | WordPress → Next.js, 490 posts, Sydney RAG | 4 dias |
| DIALØGUE iOS | App iOS nativo, primeira vez usando Swift | Ainda em andamento — mas o scaffold levou uma tarde |
Adicionei uma nova coluna na minha cabeça: "Tempo para o Claude" vs "Tempo para mim". A proporção continua mudando. A parte do Claude fica mais curta. A minha parte permanece mais ou menos igual. (Notei o mesmo padrão quando reconstruí o backend do blog em 4 dias — a migração foi rápida, mas os 8 dias de refinamento composto que se seguiram foram onde o site realmente se consolidou.)
E as ferramentas continuam melhorando. Quando a Apple e a Anthropic anunciaram a integração do Xcode + Claude Agent SDK em 3 de fevereiro, não foi só um comunicado à imprensa. Mudou fundamentalmente o que é possível. O Claude agora pode ver o Simulator, ler erros de build, capturar Previews e iterar visualmente — o mesmo loop que torna o desenvolvimento iOS difícil para humanos está se tornando nativo para a IA.
Duas semanas após esse anúncio, comecei a construir um app iOS sem saber Swift. Isso não é coincidência.
A próxima pessoa que fizer isso não precisará escrever um post sobre isso. Vai ser apenas... normal. É assim que a aceleração parece por dentro — cada marco parece menos notável do que o anterior, mesmo enquanto a distância objetiva percorrida continua crescendo.
É isso que ninguém te conta. A IA está ficando mais rápida. O trabalho humano não. Ainda não.
Perguntas Frequentes
Você realmente consegue construir um app iOS com IA sem saber Swift?
Sim — o Claude Code estruturou 69 arquivos Swift e 7.568 linhas de código em uma tarde, incluindo Apple Sign-In, compras no app StoreKit 2, playback de áudio e localização em 7 idiomas. Mas "construir" está fazendo muito trabalho nessa frase. A IA produz um codebase que compila; transformá-lo em um produto que você realmente publicaria exige extenso teste humano, julgamento de design e depuração com dados reais.
O que o Xcode 26.3 com Claude Agent SDK muda?
Anunciado em 3 de fevereiro de 2026, a integração Xcode + Claude Agent SDK permite que agentes de IA explorem a estrutura do seu projeto, pesquisem a documentação da Apple, capturem Xcode Previews, vejam o Simulator, leiam erros de build e iterem autonomamente. Isso muda fundamentalmente o que é possível para desenvolvedores que não sabem Swift — a pergunta muda de "consigo aprender a linguagem?" para "consigo descrever o que quero?"
Que porcentagem de um app gerado por IA precisa de trabalho humano?
Na minha experiência, a IA te leva aproximadamente 60% do caminho — a arquitetura, o boilerplate, as integrações de API difíceis. Os 40% restantes são trabalho de produto: corrigir bugs que só aparecem com dados reais, redesenhar interfaces que funcionam mas não parecem certas e tomar decisões sobre o que manter e o que deletar. Esses 40% são onde o produto realmente existe.
Quais habilidades mais importam ao construir com agentes de programação de IA?
Gosto de produto, julgamento de design e pensamento crítico. As habilidades de implementação (sintaxe, APIs, frameworks) são cada vez mais gerenciadas pela IA. O que não pode ser terceirizado é a capacidade de testar a coisa real com dados reais, notar o que está errado e recuar em algo que é tecnicamente correto mas experiencialmente quebrado.
O app iOS do DIALØGUE está disponível na App Store?
Ainda não — ainda está em desenvolvimento, na fase de polimento final. As funcionalidades funcionam, mas ainda estou testando com dados de produção e encontrando os edge cases que só aparecem quando você realmente usa o app. Vou escrever um follow-up quando chegar na App Store (ou quando for rejeitado).
Ainda construindo. Ainda não pronto. Ainda descobrindo o que dizer para minha filha.





