Pular para o conteúdo principal

Wails v2 liberado

· 8 min
Lea Anthony

Já disponível!

Hoje marca a liberação de Wails v2. Já faz cerca de 18 meses desde o primeiro alfa v2 e cerca de um ano desde a primeira versão beta. Eu sou realmente grato a todos que participaram da evolução do projeto.

Uma parte da razão por que demorou tanto tempo a querer chegar a uma definição de completude antes de a designar oficialmente como v2. A verdade é que nunca há um momento perfeito para marcar uma versão - há sempre questões pendentes ou "apenas mais um" recurso para entrar. No entanto, o que marcar uma versão principal imperfeita faz. é fornecer um pouco de estabilidade para os usuários do projeto, bem como um pouco de redefinição para os desenvolvedores.

Esta versão é mais do que eu já esperava que fosse. Espero que lhe dê tanto prazer como nos deu em desenvolvê-lo.

O que é Wails?

Se você não estiver familiarizado com as Wails, é um projeto que permite aos programadores Go fornecerem frontend ricos para seus programas usando tecnologias web familiares. É leve, uma alternativa ao Electron. Muito mais informações podem ser encontradas no site oficial.

O que há de novo?

A liberação v2 é um enorme salto em frente para o projeto, abordando muitos dos pontos de dor da v1. Se você não leu nenhum dos posts no blog em versões beta para macOS, Windows ou Linux, Então eu encorajo-os a fazê-lo porque cobre todas as principais mudanças em mais detalhes. Resumo:

  • Componente Webview2 para Windows que oferece suporte a modernos padrões da web e capacidades de depuração.
  • Tema Dark / Light + tema personalizado no Windows.
  • Windows não tem os requisitos de CGO.
  • Suporte fora da caixa para modelos de projeto Svelte, Vue, React, Preact, Lit & Vanilla.
  • Vite integração proporcionando um ambiente de desenvolvimento de atualização quente para seu aplicativo.
  • Aplicação nativa menus e dialogs.
  • Efeitos de translucência nativos da janela para Windows e macOS. Support para Mica & Acrylic backdrops.
  • Gera facilmente um instalador NSIS para deploys com Windows.
  • Uma biblioteca em tempo de execução que fornece métodos utilitários para manipulação de janelas, eventos, diálogos, menus e logs.
  • Suporte para ofuscar seu aplicativo usando garble.
  • Suporte para compactar sua aplicação usando UPX.
  • Geração automática de estruturas de Go para TypeScript. Mais informações aqui.
  • Não são necessárias bibliotecas extras ou DLLs para enviar com sua aplicação. Para qualquer plataforma.
  • Nenhum requisito para empacotar assets. Apenas desenvolva seu aplicativo como qualquer outro aplicativo da web.

Crédito & Obrigado

Chegar à v2 tem sido um enorme esforço. Houve cerca de 2,2 mil commits de 89 colaboradores entre o alfa inicial e o lançamento de hoje, e muitos, muitos mais que forneceram traduções, testes, feedback e ajuda nos fóruns de discussão, bem como no rastreador de problemas. Sou tão incrivelmente grato a cada um de vocês. Eu também gostaria de dar um agradecimento especial extra para todos os patrocinadores do projeto que forneceram orientação, conselho e feedback. Tudo o que você faz é extremamente apreciado.

Há algumas pessoas que eu gostaria de mencionar especialmente:

Primeiro, a enorme obrigado a @stffabi que forneceu tantas contribuições das quais todos nos beneficiamos, Para além de prestar muito apoio em muitas questões. Ele forneceu algumas principais características, como o suporte ao servidor de desenvolvimento externo que transformou a oferta de desenvolvimento ao nos permitir conectar aos superpoderes do Vite. É justo dizer que o Wails v2 seria um lançamento muito menos emocionante sem sua incrível contribuição. Muito obrigado @stffabi!

Eu também gostaria de dar um grande grito para @misitebao que tem mantido o site incansavelmente. Além de fornecer traduções chinesas, gerenciar Crowdin e ajudar novos tradutores a se atualizarem para a velocidade. Esta é uma tarefa extremamente importante, e estou extremamente grato por todo o tempo e esforço investido nisso! Você é espetacular!

Por último, mas não menos importante, um enorme agradecimento ao senhor Mat Ryer, que prestou aconselhamento e apoio durante o desenvolvimento da v2. Escrever xBar junto usando um alfa inicial da v2 foi útil para moldar a direção da v2, Além de me dar uma ideia de algumas falhas de design nas versões mais cedo. Tenho prazer em anunciar que, a partir de hoje, começaremos a abrir o porto xBar para Wails v2, e tornar-se-á o principal aplicativo para o projecto. Felicidades Mat!

Lições Aprendidas

Há uma série de lições aprendidas ao chegar à v2 que irão moldar o desenvolvimento avançado.

Menor, Rápido e Focado Versões

No desenvolvimento da v2, havia muitas características e correções de erros que foram desenvolvidas numa base ad-hoc. Isso levou a ciclos de lançamento mais longos e era mais difícil de depurar. Seguindo, vamos criar lançamentos com mais frequência que incluirá um número reduzido de recursos. Uma versão envolverá atualizações da documentação, bem como testes completos. Esperemos que estes lançamentos mais pequenos, mais rápidos e focados conduzam a menos regressões e a uma melhor documentação de qualidade.

Incentive o envolvimento

Ao iniciar este projeto, eu queria ajudar imediatamente todos os que tiveram um problema. Os problemas eram "pessoais" e eu queria que eles fossem resolvidos o mais rapidamente possível. Isto é insustentável e acaba por contrariar a longevidade do projecto. Avançando, darei mais espaço para que as pessoas se envolvam na resposta a perguntas e na triagem de questões. Seria bom conseguir algumas ferramentas para ajudar com isso, portanto, se você tiver alguma sugestão, por favor, participe da discussão aqui.

Aprendendo a dizer Não

Quanto mais pessoas se envolverem com um projeto de Código Aberto, quanto mais pedidos forem para recursos adicionais que possam ou não ser úteis para a maioria das pessoas. Estas características levarão um tempo inicial para desenvolver e debugar e incorrer num custo de manutenção contínuo a partir desse ponto. Eu próprio sou o mais culpado por isso, querendo muitas vezes "ferver o mar" em vez de fornecer o mínimo viável. Seguindo, precisaremos dizer "Não" um pouco mais para adicionar recursos principais e concentrar as nossas energias em uma forma de capacitar os desenvolvedores para fornecer essas funcionalidades por conta própria. Estamos analisando seriamente plugins para este cenário. Isso permitirá a qualquer pessoa alargar o projecto como considerar conveniente, bem como proporcionar uma forma fácil de contribuir para o projecto.

Olhando para o futuro

Há tantas características centrais que estamos a analisar para adicionar às Wails no próximo grande ciclo de desenvolvimento. O planejamento está cheio de ideias interessantes, e estou ansioso para começar a trabalhar nelas. Uma das grandes perguntas tem sido a de múltiplas janelas. É um pouco complicado e para fazer isso certo, e pode ser que precisemos analisar a prover uma API alternativa. Como o actual não foi concebido tendo isso em mente. Com base em algumas idéias preliminares e feedback, eu acho que você vai gostar de onde estamos procurando acompanhá-lo.

Eu pessoalmente estou muito animado com a perspectiva de fazer aplicativos Wails funcionarem em dispositivos móveis. Já temos um projeto de demonstração mostrando que é possível executar um aplicativo Wails no Android, então eu estou realmente ansioso para explorar onde podemos ir com isso!

Um último ponto que gostaria de levantar é o da paridade de recursos. Há muito tempo é um princípio central que não adicionamos nada ao projeto sem que haja suporte completo entre plataformas para ele. Embora isto tenha provado ser (principalmente) exequível até agora, conseguiu realmente reter o projeto na libertação de novas características. Movendo para frente, estaremos adotando uma abordagem ligeiramente diferente: qualquer nova funcionalidade que não possa ser imediatamente lançada para todas as plataformas será lançada sob uma configuração experimental ou API. Isso permite que usuários antecipados de certas plataformas experimentem o recurso e forneçam feedback que serão incorporados no design final da funcionalidade. Isto, claro, significa que não há garantias de estabilidade da API até que ela seja totalmente suportada por todas as plataformas em que pode ser suportada, mas pelo menos vai desbloquear o desenvolvimento.

Palavras Finais

Estou muito orgulhoso do que conseguimos alcançar com a versão V2. É incrível ver o que as pessoas já foram capazes de construir usando os lançamentos beta. Aplicativos de qualidade como Varly, Surge e outubro. Eu encorajo você a conferi-los.

Esta libertação foi conseguida através do trabalho árduo de muitos contribuintes. Embora seja livre de descarregar e utilizar, não surgiu através de custo zero. Não cometamos erros, este projeto tem um custo considerável. Não foi só o meu tempo e o tempo de cada um dos intervenientes, mas também o de cada um. mas também o custo da ausência de amigos e famílias de cada uma dessas pessoas. É por isso que eu estou extremamente grato por cada segundo que foi dedicado a fazer este projeto acontecer. Quanto mais contribuidores tivermos, mais este esforço poderá ser repartido e mais conseguiremos alcançar em conjunto. Eu gostaria de encorajar todos vocês a escolherem uma coisa que você possa contribuir, seja confirmar o bug de alguém, Sugira uma correção, fazendo uma documentação mudar ou ajudando alguém que precise. Todas estas pequenas coisas têm um impacto tão grande! Seria fantástico se o senhor também fizesse parte da história para chegar à v3.

Aproveite!

Lea

PS: Se você ou sua empresa consideram o Wails útil, considere patrocinar o projeto. Obrigado!