Em agosto de 2023, um pequeno grupo de líderes de desenvolvimento e UX do Google lamentou a dificuldade de configurar um ambiente de desenvolvimento para aplicativos multiplataforma e full-stack e ofereceu sua opinião sobre um protótipo experimental destinado a resolver os problemas. A dificuldade de configurar pilhas de tecnologia para desenvolvimento não é um problema novo. Tem sido um problema pelo menos desde o início da década de 1980, quando os computadores pessoais se tornaram disponíveis.

O Project IDX é um ambiente de desenvolvimento baseado em navegador construído em Code OSS e desenvolvido com Codey, um modelo generativo de base de IA treinado em código e construído em PaLM 2. O Project IDX foi projetado para facilitar a construção, o gerenciamento e a implantação de pilha completa. aplicações web e multiplataforma, usando frameworks e linguagens populares.

Code OSS é a versão totalmente de código aberto do Visual Studio Code da Microsoft. Este último possui algumas adições proprietárias, apesar de ser software livre.

No momento do seu anúncio em agosto, o Projeto IDX só estava disponível por meio de inscrição em lista de espera; minha inscrição foi finalmente aprovada em dezembro. O Projeto IDX ainda é uma visualização aproximada, mas tem um design interessante e alguma utilidade, mesmo que ainda não seja destinado ao uso em um ambiente de produção.

Existem vários produtos que competem com o Project IDX em algum nível. Isso inclui AWS Cloud9, Gitpod, IDE online, Replit, StackBlitz, Eclipse Che, Codeanywhere e GitHub Codespaces.

Parece código do Visual Studio

Há uma série de recursos que fazem o Projeto IDX parecer promissor, apesar de suas arestas e da sensação de estar em construção. Para começar, é na verdade um ambiente familiar para quem usa o Visual Studio Code. Pelo que entendi, as partes do VS Code que não estão incluídas no Code OSS são personalizações específicas da Microsoft, que não importam muito neste contexto.

Algumas dessas personalizações são substituídas pelo IDX AI desenvolvido pela Codey. O IDX AI fornece sugestões de código enquanto você digita e oferece um bate-papo de código com tecnologia de IA onde você pode pedir ajuda com seu código, para gerar novo código, para traduzir código para outro idioma, para explicar código e para escrever testes de unidade. Supostamente, IDX AI também destaca possíveis requisitos de licença baseados em código gerado por IA, embora eu não tenha visto isso aparecer.

O Projeto IDX parecerá familiar devido à sua semelhança com o VS Code. O menu “hambúrguer” superior esquerdo substitui o menu da linha superior no VS Code e oferece a maioria dos mesmos itens de menu quando aparece. Os ícones na linha vertical abaixo controlam o conteúdo da próxima coluna à direita, mostrando atualmente o explorador de arquivos, o esboço do código do arquivo atual, a linha do tempo do arquivo atual e as dependências do aplicativo. O grande painel de edição que mostra main.dart pode exibir até quatro guias. A janela de visualização à direita também pode exibir o painel IDX AI e guias adicionais de arquivo de código. A grande área no canto inferior direito exibe problemas de código, saída, um console de depuração e um terminal.

Funciona em uma estação de trabalho em nuvem

O editor IDX Code OSS é executado em uma VM do Google Cloud, chamada Cloud Workstation. Normalmente, o tempo da estação de trabalho em nuvem é cobrado por hora a uma taxa que varia de acordo com o tamanho do tipo de máquina, de US$ 0,16/hora a US$ 9,36/hora. O Projeto IDX é atualmente gratuito.

Normalmente, as estações de trabalho em nuvem oferecem suporte a uma variedade de IDEs populares e Duet AI. O Projeto IDX suporta apenas Code OSS e Codey em vez de Duet. (Não posso dizer a diferença entre o Duet AI e o Codey na prática, embora possa ser uma comparação interessante para investigar.) As estações de trabalho em nuvem normalmente podem ser executadas dentro de sua rede privada e em seu ambiente de teste. O Projeto IDX está atualmente restrito ao seu próprio ambiente.

Suporta muitas linguagens e estruturas

Você pode criar projetos no Project IDX com modelos integrados e importações do GitHub. Os modelos suportam as linguagens JavaScript, TypeScript e Dart e as estruturas Angular, React, NextJS, Vue, Svelte e Flutter. No futuro, o Projeto IDX deverá oferecer suporte a Python, Go e “AI”. Opcionalmente, você pode usar o Nix para personalizar seu espaço de trabalho.

projeto google idx 03

Este menu oferece a você a escolha inicial do tipo de aplicativo que você irá gerar ou importar. Cada item (exceto o grupo “em breve” na parte inferior) abre uma tela secundária para especificar a estrutura do seu aplicativo e nomeá-lo.

projeto google idx 03a

A tela de segundo nível para gerar um novo aplicativo web oferece atualmente uma escolha de seis estruturas web. Eles são Angular, React, Next.js, Vue, Svelte ou um aplicativo em branco, o que implica escrever seu próprio HTML, JavaScript/TypeScript e CSS. Nix é o arquivo que você pode usar para personalizar um espaço de trabalho.

Integra-se com Git e GitHub

As importações do GitHub podem ser de três tipos: web, Flutter e “outros”, o que atualmente parece significar estruturas JavaScript/TypeScript diferentes daquelas explicitamente listadas. As estruturas explicitamente suportadas incluem Angular, React, Next.js, Vue e Svelte.

Se o seu projeto GitHub tiver dependências de JavaScript, você poderá executar npm install na janela do terminal IDX após a conclusão da importação. Você também pode transformar seu projeto em um repositório Git no IDX e sincronizá-lo com o GitHub.

projeto google idx 04

O Projeto IDX integra-se bem com Git e GitHub. À esquerda, você pode ver as opções para inicializar um repositório Git e publicá-lo no GitHub.

projeto google idx 04a

Depois de criar um repositório e autenticar no GitHub, o Project IDX pode enviar o repositório para o GitHub. Aqui você pode ver a exibição típica do GitHub do arquivo README.md gerado para o aplicativo pelo Angular.

Visualiza, implanta e compartilha aplicativos

Além de uma visualização na web, o Project IDX apresenta visualizações em emuladores Android e simuladores iOS, quando suportados pelo modelo subjacente. Todos os três funcionam para um aplicativo Flutter. Apenas dois, visualização da web e simulador de iOS, funcionam para um aplicativo Angular, já que um aplicativo Angular padrão não é nativo, a menos que você adicione algo como Ionic ou NativeScript.

Você pode implantar diretamente do seu espaço de trabalho na hospedagem Firebase. Em caráter experimental, você pode compartilhar seu espaço de trabalho com acesso compartilhado completo.

O Project IDX vem com extensões pré-instaladas para as linguagens e estruturas que suporta. Supõe-se que ele suporte extensões adicionais disponíveis no OpenVSX, embora eu não possa confirmar se todas elas funcionam neste momento – há muitas (mais de 3.000) para verificar.

Uma grande limitação atual do Projeto IDX é que apenas dois projetos são permitidos ao mesmo tempo. Você pode contornar isso salvando projetos no GitHub e fazendo malabarismos com os que você abriu no IDX.

Observe que existem vários relatórios de bugs além da lista do FAQ.

projeto google idx 05

O aplicativo Flutter relatou dois erros de configuração. Aqui estou tentando resolver um deles com a ajuda do IDX AI. Infelizmente, o conselho da IA ​​para usar o sudo apt-get para instalar o Chrome revelou-se inútil, uma vez que a VM IDX atualmente não inclui o sudo ou o apt-get. Não vou chamar isso de alucinação, já que esses utilitários podem estar planejados para uma versão futura.

Vive no Google Cloud

O Projeto IDX é muito promissor. É visualmente semelhante ao Visual Studio Code for the Web (que, infelizmente, não possui terminal e depurador). É visual e funcionalmente semelhante ao GitHub Codespaces e Gitpod, e é funcionalmente semelhante ao Eclipse Che.

Um motivo pelo qual você pode preferir o Project IDX a qualquer um deles seria sua hospedagem em um Google Cloud Workspace, o que é uma grande vantagem se você deseja integrar-se a qualquer serviço do Google Cloud ou a outros programas em execução no Google Cloud. Por outro lado, se o seu código existente for executado na AWS, você pode considerar o uso do AWS Cloud9.

Minha maior preocupação em assumir um compromisso com o Projeto IDX seria a longa história do Google de eliminar seus projetos e serviços. Lembra do Google+? Base livre? O Google Search Appliance? Polímero? Domínios do Google? Todos ex-papagaios, desceram a cortina e juntaram-se ao coro invisíveis.

No entanto, o Projeto IDX tem seus atrativos. Contanto que você crie um repositório GitHub a partir do seu espaço de trabalho e o mantenha atualizado, certamente vale a pena tentar.

Custo: Visualização gratuita

Plataforma: Baseado em navegador, hospedado no Google Cloud