Skip to content
··13 min de leitura

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:

FaseO que aconteceuCommits
Documento de design + plano de implementaçãoDecisões de arquitetura, 12 tarefas2
Claude constrói "o app inteiro"Scaffold → auth → biblioteca → detalhe → studio → StoreKit → acessibilidade6
O humano abre o SimulatorCorrigir, testar, redesenhar, corrigir, testar, redesenhar12+ (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.

DIALØGUE iOS app podcast detail page with Studio Warmth dark theme showing amber radial glow header and integrated audio controls
A página de detalhe do podcast depois da aplicação do Studio Warmth — brilho âmbar, dark mode, playback integrado. Nada disso existia no scaffold original do Claude.

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:

  1. 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.

  2. 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 AVAudioSession para playback em segundo plano. Essas coisas teriam me levado dias para descobrir na documentação sozinho.

  3. 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 construiuO 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 tela24 arquivos de tokens de marca, dark mode forçado
Decoder JSON para o schema documentadoDecoder 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 funcionaUm wizard de criação que cabe na tela de um celular
DIALØGUE iOS creation wizard showing voice customization with speed and pitch sliders in dark theme
O wizard de criação depois da intervenção humana — personalização de voz com sliders de velocidade/tom, seções expansíveis, tudo cabendo 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 funcionaO que falta
Auth (Apple, Google, email, MFA)Upload de PDF (document picker + Supabase Storage)
Wizard de criação em 5 etapas com personalização completaDownload offline de MP3
Detalhe de podcast com revisão de outline/scriptPush notifications (adiado para v1.1)
Playback de áudio com controles na tela de bloqueioDistribuição beta pelo TestFlight
Compras no app StoreKit 2Submissã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:

ProjetoComplexidadeTempo para Construir
DIALØGUE v1MVP gerador de podcast~6 meses
STRAŦUM10 agentes de IA, 11 frameworks, multi-tenant75 dias
Redesign do siteReformulação do frontend WordPress3 dias
DIALØGUE v2Reconstrução completa do app web14 dias
Migração do blogWordPress → Next.js, 490 posts, Sydney RAG4 dias
DIALØGUE iOSApp iOS nativo, primeira vez usando SwiftAinda 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.


Continuar Lendo

Minha Jornada
Conectar
Idioma
Preferências