JetBrains Compose para desktop e Web agora está em alfa

A JetBrains lançou o Compose for Desktop and Web, uma versão do Jetpack Compose do Google para Android, para alfa. Aqui estão as novidades.

Se você ainda não ouviu falar Composição do Jetpack, onde você esteve ultimamente? O Google criou esta estrutura de UI declarativa para substituir o mecanismo de layout XML padrão no Android. O Compose permite que os desenvolvedores criem seus layouts e a lógica que os acompanha, tudo em Kotlin. JetBrains, a empresa por trás do Kotlin, também entrou na ação do Compose e está trabalhando para portá-lo para desktop e web.

JetBrains Compose para Desktop e Web já está em desenvolvimento há algum tempo. Ele teve uma “Visualização de tecnologia” pré-alfa pública que os desenvolvedores podem usar para criar aplicativos de plataforma cruzada no Compose. Eu pessoalmente usei isso para meu aplicativo Samsung Firmware Downloader, e funciona muito bem.

Hoje, a JetBrains está promovendo sua versão do Compose para alfa. Isso significa uma API mais estável, juntamente com alguns novos recursos e alterações.

Compor para a Web

Primeiro, a web. Compose for Web é ainda mais recente que o Compose para desktop, e está faltando um pouco. Isso não significa que seja inútil. Embora os desenvolvedores possam não obter os principais elementos de UI disponíveis para Desktop e Android, os desenvolvedores ainda obtêm os benefícios de escrever em Kotlin com princípios de design declarativos.

Agora que o Compose está em um estágio alfa, a API da Web deve ser mais estável, com menos alterações significativas feitas ao longo do tempo, se houver.

Compor gerenciamento de janela

De volta à área de trabalho, há algumas mudanças na forma como os desenvolvedores interagem com o Windows em seus aplicativos.

O primeiro é um novo API de janela combinável. Isso permite que os desenvolvedores interajam com as janelas de seus aplicativos de forma declarativa. Por exemplo, o título da janela agora pode ser alterado com um estado, e as janelas podem até ser abertas e fechadas com base nos estados.

Outra parte da API da nova janela permite que os desenvolvedores optem por abrir novas janelas com um tamanho adaptável (em vez de fixo). Isso significa que o Compose calculará o tamanho que uma janela precisa ter com base em seu conteúdo, definirá automaticamente o tamanho inicial e, em seguida, abrirá a janela.

Plug-ins

JetBrains Compose sempre teve um plugin Gradle para realizar compilação e execução. Com o alfa, este plugin está recebendo um aumento de versão, junto com algumas correções de bugs.

Além do plugin Gradle, porém, há agora um plugin IDE para IntelliJ IDEA e Android Studio para oferecer melhor suporte ao Compose para desktop e Web. Da mesma forma que o Compose para Android, este plug-in permite que os desenvolvedores anotem funções que podem ser compostas como visualizações e visualizem visualizações de layout diretamente no IDE.

O plugin é muito básico agora. O único outro recurso que ele possui no momento remove o aviso de lint do IDE sobre o uso de maiúsculas e minúsculas para nomes de funções que podem ser compostas. Mas terá mais recursos com o passar do tempo, como a visualização ao vivo.

Suporte de Arquitetura

Embora o objetivo do JetBrains Compose seja ser multiplataforma, ele ainda não oferece suporte completo para todas as arquiteturas de CPU. O alfa expande o suporte atual para o seguinte:

  • macOS: x86-64 (amd64), arm64
  • Janelas: x86-64 (amd64)
  • Linux: x86-64 (amd64), arm64
  • Web: qualquer coisa recente

Embora isso certamente não cubra tudo, o suporte só vai melhorar no futuro.

Desenvolvimentos futuros

A escolha da JetBrains de mover o Compose para um estado alfa é importante. Isso significa que eles estão planejando continuar desenvolvendo-o, com eventuais estágios beta e estáveis. E, claro, mais recursos.

Conclusão

É muito emocionante ver o que o Compose tem a oferecer. No Android, ele substitui um mecanismo de layout desatualizado (embora perfeitamente utilizável). No Desktop e na Web, ele traz design declarativo usando uma linguagem fortemente tipada que é mais fácil de usar (pelo menos para mim) do que linguagens baseadas em TypeScript. Especialmente no Desktop, o Compose ajuda a preencher uma grande lacuna nos mecanismos de layout funcionais.

Se você estiver interessado em experimentar o JetBrains Compose, confira o repositório GitHub para obter mais detalhes sobre como começar.