Desenvolvi um aplicativo para Apple Watch em apenas 12 horas usando Claude Code – ao invés de 2 meses.

Desenvolvendo um Aplicativo para Apple Watch: Desafios e Aprendizados

Após utilizar Claude Code para a criação de versões do meu aplicativo de gerenciamento de filamento para iPhone e Mac, jamais imaginei que a implementação para Apple Watch seria tão complicada. Essa previsibilidade se revelou uma falha de perspectiva. O trabalho de identificar as funcionalidades essenciais e ajustá-las para caber na tela diminuta do Apple Watch se mostrou um verdadeiro desafio.

É verdade que consegui elaborar a maior parte da interface em cerca de duas horas. Contudo, isso foi apenas um protótipo que demonstrou que eu poderia fazer algo funcional. Os dados de teste ainda não estavam operando como esperado no simulador do Xcode. Entretanto, quando transferi o aplicativo para meu relógio físico e tentei integrá-lo com os mais de 120 registros de dados acumulados no app do iPhone, enfrentamos uma pequena crise no Xcode, que monitorava o desempenho do app.

No início do desenvolvimento, tanto para as versões do iPhone quanto do Mac, eu tinha uma visão bem definida das funções que queria. No entanto, sobre o que realmente funcionaria no Apple Watch, eu não tinha tanta certeza. Funcionalidades como escaneamento NFC e captura de fotos estavam claramente fora de questão. A pergunta que se colocava era: quais recursos eram realmente importantes e quais poderiam ser desconsiderados? A construção do aplicativo para Apple Watch seria, definitivamente, um exercício de eliminação. Assim como Michelangelo descreveu suas esculturas, o desafio era retirar o que não servia para revelar o que já estava presente.

Neste ciclo de desenvolvimento, iniciei pedindo recomendações ao Claude Code sobre funcionalidades. Perguntei: "Quero criar um aplicativo para Apple Watch. É evidente que será um subconjunto bem menor do aplicativo iOS, sem NFC e sem fotos. Pense sobre o projeto e suas aplicações, e sugira as características e funcionalidades de um aplicativo para Apple Watch." Claude fez um trabalho razoável, mas se empolgou um pouco com a ideia de criar uma complicação para o relógio, que indicaria quanto filamento restava. Porém, isso não era viável, dado que existiam centenas de bobinas.

Depois de superar essa obsessão inicial do Claude, discutimos os casos de uso. Meu objetivo era simples: verificar no meu relógio o que estava carregado em cada impressora 3D, registrar a movimentação de uma bobina, caso não tivesse meu celular em mãos, e fazer uma busca rápida pelos materiais disponíveis para meus projetos. Assim, decidi que as funcionalidades do aplicativo seriam:

  • Filtrar e navegar por bobinas por material, cor e fornecedor.
  • Visualizar detalhes da bobina e sua atribuição atual.
  • Mover bobinas entre impressoras e locais de armazenamento.
  • Marcar bobinas como finalizadas.
  • Navegar por impressoras, locais de armazenamento e cores.
  • Sincronizar dados de forma dinâmica entre o iPhone, Mac e o relógio.

Isso significou deixar de fora várias funcionalidades, como:

  • Movimentação rápida (fluxo de trabalho baseado em NFC).
  • Leitura e gravação de tags NFC.
  • Criação, edição e exclusão de bobinas.
  • Gestão de impressoras e locais de armazenamento.
  • Estatísticas de bobinas finalizadas.
  • Funções de backup e restauração.
  • Integração com atalhos do iOS.

Com o conjunto de funcionalidades definido, pedi ao Claude Code que construísse o app.

Nos primeiros testes, utilizei dados de teste para as versões iniciais e avaliei a funcionalidade do aplicativo no simulador do Xcode. A tela inicial carecia do botão para máquinas. Ao invés de listar bobinas, chamou essa funcionalidade de "inventário". Além disso, criou um botão de filtragem que não gerava nenhuma função.

Quando finalmente fiz a funcionalidade de bobinas funcionar, o aplicativo mostrava porcentagens de uso, às vezes acompanhadas pelo nome do fornecedor. Porém, Claude queria limitar arbitrariamente o número de bobinas exibidas às primeiras 25. Expliquei que o objetivo do app era visualizar toda a lista de bobinas. Eventualmente, Claude implementou a versão sem esse limite.

Embora nem a IA nem eu tivéssemos percebido na hora, essa modificação se revelaria um problema temporariamente fatal. Eventualmente, consegui que todas as telas funcionassem corretamente. Decidi que gostaria de visualizar uma imagem de cada bobina disponível. No entanto, fotos ocupam muito espaço e isso gerou um desafio. O Apple Watch Series 9 possui 1GB de RAM e 64GB de armazenamento, que devem ser compartilhados entre todos os apps ativos. O download de centenas de imagens acabou sobrecarregando a memória do dispositivo.

De acordo com Claude, a sincronização do Apple Watch com o iCloud traz tudo de uma vez da estrutura de dados. Na arquitetura que eu implementei, não era possível buscar uma foto individualmente quando solicitada. Claude ofereceu reestruturar todos os aplicativos, mas experiências anteriores mostraram que mudanças drásticas para benefícios pequenos podem ser problemáticas. Portanto, conversei com Claude sobre a questão.

Decidimos bifurcar a estrutura de dados principal, mantendo tudo igual, exceto pelas fotografias. As versões para iPhone e Mac incluiriam referências a fotos, enquanto a versão para o Watch ficaria sem. Depois disso, Claude Code implementou a mudança e, finalmente, consegui ter um aplicativo funcional para Apple Watch.

Desenvolver o aplicativo para o relógio foi uma experiência colaborativa, mais do que nas versões para iPhone ou Mac. Eu pedia opiniões, permitia que ele fizesse sugestões, testava essas ideias e ajustava quando necessário. Embora o app para o Watch seja o menor, o tempo para desenvolvê-lo foi maior em relação aos outros dois. O desafio estava em conservar a arquitetura original, mas criando um app que fosse único e adequado às limitações do dispositivo.

Como mencionei antes, retomar a codificação com a IA não exige o mesmo tempo de readaptação que a codificação manual. Assim, eu conseguia dedicar 20 minutos em cada sessão e ainda produzir algo, ao invés de precisar reservar dias inteiros para relembrar a arquitetura de código. Estou bastante satisfeito com a implementação do Watch, que já integrou meu fluxo de trabalho no projeto de impressão 3D. Estimo que, seguindo métodos tradicionais de desenvolvimento, esse aplicativo levaria entre 6 a 8 semanas de trabalho, distribuídas por cerca de seis meses. Porém, com Claude Code, trabalhei no app do relógio por aproximadamente 12 horas, divididas ao longo de três semanas. Fiquei animado ao ver um aplicativo funcional nas primeiras duas horas e utilizei o tempo restante para aprimorá-lo.

E você? Já experimentou usar ferramentas de IA como Claude Code no desenvolvimento real de aplicativos ou ainda está indeciso? Como você decide quais características pertencem a um dispositivo limitado como o Apple Watch? Já encontrou limites de desempenho ou de sincronização de dados ao escalar um aplicativo entre dispositivos? Acredita que a codificação assistida por IA altera de forma significativa o tempo necessário para projetos assim? Compartilhe suas impressões nos comentários.

Fonte: https://www.zdnet.com/article/how-scary-is-ai-coding-the-story-of-my-first-apple-watch-app/

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima