No universo dinâmico da programação, a Inteligência Artificial (IA) tem se consolidado como uma aliada poderosa, otimizando fluxos de trabalho e impulsionando a produtividade. Um exemplo notável é a experiência de construção de um aplicativo de contagem regressiva com o GitHub Copilot, que revelou padrões práticos para trabalhar com IA em projetos de desenvolvimento. Explorar esses padrões é fundamental para qualquer desenvolvedor que busca maximizar o potencial das ferramentas de IA.
Desde a gestão de janelas de contexto para manter conversas focadas, passando pelo uso do Agente Plan para descoberta de requisitos, até a implementação de Test-Driven Development (TDD) com o Copilot para capturar casos de borda, a jornada de desenvolvimento com IA é repleta de aprendizados. E, claro, alguns desafios inesperados, como a complexidade de renderizar mapas-múndi!
Confira o stream completo abaixo para ver a ação em tempo real. 👇
Começando Simples: O Aplicativo de Contagem Regressiva
Embora cronômetros de contagem regressiva pareçam conceitos diretos — dias viram horas, minutos em segundos —, são muitas vezes essas ideias simples que nos permitem ser mais criativos. A proposta era usar o Copilot de uma forma orientada a especificações ou requisitos para criar um aplicativo de contagem regressiva que gerasse antecipação e exibisse fogos de artifício na virada do ano. Esse tipo de abordagem reflete como a IA está democratizando a criação de softwares, conforme explicamos em nosso artigo sobre 3 Ferramentas: Crie seu Site Com IA.
💡O Que É Desenvolvimento Orientado a Especificações?
Em vez de codificar primeiro e documentar depois, o desenvolvimento orientado a especificações (spec-driven development), como o nome sugere, começa com uma especificação. Este documento funciona como um contrato sobre como seu código deve se comportar, tornando-se a fonte de verdade para suas ferramentas e agentes de IA gerarem, testarem e validarem o código. O resultado são menos suposições, menos surpresas e um código de maior qualidade.
O desenvolvimento de software é um processo iterativo, e este projeto abraçou essa característica plenamente. Embora alguns requisitos estivessem bem definidos, outros evoluíram em tempo real, moldados por sugestões da audiência. Agentes personalizados, como o Agente Plan, foram cruciais para preencher lacunas, transformando ideias ambíguas em planos estruturados e acionáveis. Isso mostra o potencial da IA em auxiliar na organização do trabalho, um tema que permeia diversas aplicações, como a segurança de software potencializada por IA, abordada em Segurança Potencializada por IA: GitHub Lança Framework Open Source.
Configurando o Projeto com GitHub Copilot
O primeiro passo foi gerar um novo espaço de trabalho com o GitHub Copilot, utilizando um prompt bastante específico. O prompt detalhava que o objetivo era construir um aplicativo de contagem regressiva para o Ano Novo e que seriam usadas as tecnologias Vite, TypeScript e Tailwind CSS v4. As exigências iniciais incluíam um tema escuro por padrão, layout centralizado, dígitos grandes e em negrito com uma animação sutil, e o alvo padrão para a meia-noite de 1º de janeiro do PRÓXIMO ano, com espaço para personalizações futuras.
#new
1. Crie um novo workspace para um aplicativo de contagem regressiva de Ano Novo usando Vite, TypeScript e Tailwind CSS v4.
**Requisitos de Configuração:**
- Use o plugin @tailwindcss/vite (estilo Tailwind v4)
- Tema escuro por padrão (fundo zinc-900)
- Layout centralizado com a contagem regressiva como elemento principal
**Funcionalidade de Contagem Regressiva:**
Crie um módulo `countdown.ts` com:
- Um tipo `CountdownTarget` que tenha `{ name: string, date: Date }` para que possamos personalizar futuramente para o que estamos contando
- Uma função `getTimeRemaining(target: Date)` retornando `{ days, hours, minutes, seconds, total }`
- Uma função auxiliar `formatTimeUnit(n: number)` que adiciona zero à esquerda para 2 dígitos
- Alvo padrão: meia-noite de 1º de janeiro do PRÓXIMO ano (calcular dinamicamente a partir da data atual)
**Exibição:..."