Pular para o conteúdo principal

4 publicações marcadas com "v2"

Ver Todas as Tags

· 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!

· 5 min
Lea Anthony

Tenho o prazer de finalmente anunciar que as Wails v2 agora estão em beta para Linux! É um pouco irônico que os primeiros experimentos com v2 tenha sido no Linux e, no entanto, ele acabou como o último lançamento. Dito isso, o v2 que temos hoje é muito diferente desses primeiros experimentos. Então, sem mais demora, vamos analisar os novos recursos:

Novos Recursos


Houve muitas solicitações para o suporte ao menu nativo. Wails finalmente ajudou você. Os menus de aplicativo agora estão disponíveis e incluem suporte para a maioria dos recursos do menu nativo. Isto inclui itens de menu padrão, caixas de seleção, grupos de rádio, submenus e separadores.

Houve um grande número de pedidos na v1 no sentido de se conseguir um maior controlo da própria janela. Estou feliz em anunciar que há novas APIs de tempo de execução especificamente para isso. Ele é rico em recursos e suporta configurações multi-monitores. Há também uma API de diálogos aprimorada: agora você pode ter diálogos com configuração avançada para atender a todas as suas necessidades de diálogo.

Nenhum requisito para empacotar assets

Um grande problema da v1 foi a necessidade de condensar todo o seu aplicativo em um único JS & Arquivos CSS. Estou feliz em anunciar que para v2, não há nenhum requisito de agrupar assets, de qualquer forma. Quer carregar uma imagem local? Use uma tag <img> com um caminho de src local. Quer usar uma fonte legal? Copie ele e adicione o caminho para ele em seu CSS.

Uau, isso soa como um servidor web...

Sim, funciona como um servidor web, mas não é.

Então, como incluo meus assets?

Você apenas passa um único embed.FS que contém todos os seus assets na configuração da sua aplicação. Eles nem precisam estar no diretório superior - o Wails resolverá isso para você.

Nova Experiência de Desenvolvimento

Agora que os ativos não precisam ser agrupados, foi possível uma experiência de desenvolvimento totalmente nova. O novo comando wail dev irá construir e executar seu aplicativo, mas em vez de usar os ativos do incorporados. S, carrega-os diretamente do disco.

Ele também fornece os recursos adicionais:

  • Carregamento automatico - Quaisquer mudanças nos recursos do frontend irão ativar e recarregar automaticamente o frontend do aplicativo
  • Reconstrução automática - Qualquer alteração ao seu código Go irá reconstruir e reiniciar seu aplicativo

Além disso, um servidor web iniciará na porta 34115. Isso servirá seu aplicativo para qualquer navegador que conecta a ele. Todos os navegadores web conectados responderão a eventos do sistema como recarregar rapidamente na alteração de ativos.

Em Go, estamos acostumados a lidar com estruturas em nossas aplicações. Muitas vezes é útil enviar estruturas para nosso frontend e use-os como estado em nosso aplicativo. Na v1, este foi um processo muito manual e um pouco de sobrecarga para o desenvolvedor. Tenho prazer em anunciar isso em v2, qualquer aplicativo executado no modo de desenvolvimento irá gerar automaticamente modelos TypeScript para todas as construções que são entradas ou parâmetros de saída para métodos vinculados. Isso permite uma troca perfeita de dados modelos entre os dois mundos.

Além disso, outro módulo JS é gerado dinamicamente todos os seus métodos de vinculação. Isso fornece JSDoc para seus métodos, fornecendo a conclusão de código e dicas em seu IDE. É muito legal quando você obtém modelos de dados auto-importado quando atinge a aba em um módulo gerado automaticamente embrulhando o seu código Go!

Modelos Remotos


Colocar um aplicativo em funcionamento rapidamente sempre foi um objetivo importante do projeto Wails. Quando lançamos, tentamos cobrir muitos dos frameworks modernos no momento: react, vue e angular. O mundo do desenvolvimento frontend é muito teimoso, rápido e difícil de manter no controle! Como resultado, descobrimos que nossos modelos básicos estavam bastante desatualizados rapidamente e isso causou uma dor de cabeça de manutenção. Também significava que não tínhamos modelos modernos legais para os mais recentes e os maiores cumes tecnológicos.

Com a v2, eu queria capacitar a comunidade, dando a vocês a capacidade de criar e hospedar modelos por conta própria, em vez de do que confiar no projeto Wails. Então agora você pode criar projetos usando templates suportados pela comunidade! Espero que isto vá inspirar os desenvolvedores a criar um ecossistema vibrante de modelos de projeto. Estou realmente animado com o que a comunidade de desenvolvedores pode criar!

Compilação para Windows

Como o Wails v2 para Windows é um Go, você pode direcionar versões do Windows sem o docker.


Em conclusão

Como eu disse nas notas de lançamento do Windows, Wails v2 representa uma nova fundação para o projeto. O objetivo desta versão é obter feedback sobre a nova abordagem e aperfeiçoar quaisquer erros antes de uma versão completa. Sua opinião seria muito bem-vinda! Por favor, direcione qualquer feedback para o fórum de discussão Beta.

Linux é Difícil de suporte. Esperamos que haja uma série de peculiaridades com o beta. Por favor, ajude-nos a lhe ajudar por a visualizar relatórios detalhados de erros!

Por fim, gostaria de agradecer especialmente a todos os patrocinadores do projeto cujo apoio conduzir o projeto de várias maneiras nos bastidores.

Estou ansioso para ver o que as pessoas construirão com Wails nesta próxima fase emocionante do projeto!

Lea.

PS: A versão v2 não está muito distante agora!

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

· 6 min
Lea Anthony

Hoje marca a primeira versão beta do Wails v2 para Mac! Demorou um pouco para chegar a este ponto e espero que o lançamento de hoje lhe dará algo razoavelmente útil. Houve uma série de reviravoltas e turnos para chegar a este ponto e estou esperando, com a sua ajuda, para passar as rugas e polir a porta Mac para a versão final do v2.

Quer dizer que isso não está pronto para a produção? Para o seu caso de uso, ele pode estar pronto, mas ainda há vários problemas conhecidos, então fique de olho neste quadro de projeto e se desejar gostaria de contribuir, será muito bem-vindo!

Então, o que há de novo para Wails v2 para Mac vs v1? Dica: É bem parecido com o Windows Beta 😉

Novos Recursos


Houve muitas solicitações para o suporte ao menu nativo. Wails finalmente ajudou você. Os menus de aplicativo agora estão disponíveis e incluem suporte para a maioria dos recursos do menu nativo. Isto inclui itens de menu padrão, caixas de seleção, grupos de rádio, submenus e separadores.

Houve um grande número de pedidos na v1 no sentido de se conseguir um maior controlo da própria janela. Estou feliz em anunciar que há novas APIs de tempo de execução especificamente para isso. Ele é rico em recursos e suporta configurações multi-monitores. Há também uma API de diálogos aprimorada: agora você pode ter diálogos com configuração avançada para atender a todas as suas necessidades de diálogo.

Opções especificas para Mac

Além das opções normais do aplicativo, o Wails v2 para Mac também traz alguns extras:

  • Faça sua janela totalmente engraçada e translucente, como todos os aplicativos muito rápidos!
  • Barra de títulos altamente customizável
  • Nós suportamos as opções NSAppearance para o aplicativo
  • Configuração simples para criar automaticamente um menu "Sobre"

Nenhum requisito para empacotar assets

Um grande problema da v1 foi a necessidade de condensar todo o seu aplicativo em um único JS & Arquivos CSS. Estou feliz em anunciar que para v2, não há nenhum requisito de agrupar assets, de qualquer forma. Quer carregar uma imagem local? Use uma tag <img> com um caminho de src local. Quer usar uma fonte legal? Copie ele e adicione o caminho para ele em seu CSS.

Uau, isso soa como um servidor web...

Sim, funciona como um servidor web, mas não é.

Então, como incluo meus assets?

Você apenas passa um único embed.FS que contém todos os seus assets na configuração da sua aplicação. Eles nem precisam estar no diretório superior - o Wails resolverá isso para você.

Nova Experiência de Desenvolvimento

Agora que os ativos não precisam ser agrupados, foi possível uma experiência de desenvolvimento totalmente nova. O novo comando wail dev irá construir e executar seu aplicativo, mas em vez de usar os ativos do incorporados. S, carrega-os diretamente do disco.

Ele também fornece os recursos adicionais:

  • Carregamento automatico - Quaisquer mudanças nos recursos do frontend irão ativar e recarregar automaticamente o frontend do aplicativo
  • Reconstrução automática - Qualquer alteração ao seu código Go irá reconstruir e reiniciar seu aplicativo

Além disso, um servidor web iniciará na porta 34115. Isso servirá seu aplicativo para qualquer navegador que conecta a ele. Todos os navegadores web conectados responderão a eventos do sistema como recarregar rapidamente na alteração de ativos.

Em Go, estamos acostumados a lidar com estruturas em nossas aplicações. Muitas vezes é útil enviar estruturas para nosso frontend e use-os como estado em nosso aplicativo. Na v1, este foi um processo muito manual e um pouco de sobrecarga para o desenvolvedor. Tenho prazer em anunciar isso em v2, qualquer aplicativo executado no modo de desenvolvimento irá gerar automaticamente modelos TypeScript para todas as construções que são entradas ou parâmetros de saída para métodos vinculados. Isso permite uma troca perfeita de dados modelos entre os dois mundos.

Além disso, outro módulo JS é gerado dinamicamente todos os seus métodos de vinculação. Isso fornece JSDoc para seus métodos, fornecendo a conclusão de código e dicas em seu IDE. É muito legal quando você obtém modelos de dados auto-importado quando atinge a aba em um módulo gerado automaticamente embrulhando o seu código Go!

Modelos Remotos


Colocar um aplicativo em funcionamento rapidamente sempre foi um objetivo importante do projeto Wails. Quando lançamos, tentamos cobrir muitos dos frameworks modernos no momento: react, vue e angular. O mundo do desenvolvimento frontend é muito teimoso, rápido e difícil de manter no controle! Como resultado, descobrimos que nossos modelos básicos estavam bastante desatualizados rapidamente e isso causou uma dor de cabeça de manutenção. Também significava que não tínhamos modelos modernos legais para os mais recentes e os maiores cumes tecnológicos.

Com a v2, eu queria capacitar a comunidade, dando a vocês a capacidade de criar e hospedar modelos por conta própria, em vez de do que confiar no projeto Wails. Então agora você pode criar projetos usando templates suportados pela comunidade! Espero que isto vá inspirar os desenvolvedores a criar um ecossistema vibrante de modelos de projeto. Estou realmente animado com o que a comunidade de desenvolvedores pode criar!

Suporte Nativo M1

Graças ao incrível apoio do RyerMat, o projeto Wails agora suporta as construções nativas do M1:


Você também pode especificar darwin/amd64 como um alvo também:


Ah, eu quase esqueci... você também pode fazer darwin/universal.... 😉


Compilação para Windows

Como o Wails v2 para Windows é um Go, você pode direcionar versões do Windows sem o docker.


Renderizador WKWebView

V1 dependeu de um componente WebView (agora obsoleto). V2 usa o componente WKWebKit mais recente então espere o mais recente e o maior da Apple.

Em conclusão

Como eu disse nas notas de lançamento do Windows, Wails v2 representa uma nova fundação para o projeto. O objetivo desta versão é obter feedback sobre a nova abordagem e aperfeiçoar quaisquer erros antes de uma versão completa. Sua opinião seria muito bem-vinda! Por favor, direcione qualquer feedback para o fórum de discussão Beta.

E finalmente, eu gostaria de agradecer especialmente a todos os patrocinadores do projeto, incluindo JetBrains, cujo suporte dirige o projeto de muitas formas nos bastidores.

Estou ansioso para ver o que as pessoas construirão com Wails nesta próxima fase emocionante do projeto!

Lea.

PS: usuários do Linux, você será o próximo!

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

· 9 min
Lea Anthony

Quando eu anunciei o pela primeira vez o Wails no Reddit, justamente a 2 anos atrás dentro de um trem em Sidney, Eu não esperava que isso teria muita atenção. Alguns dias mais tarde, um vlogger tecnológico prolífico lançou um vídeo de tutorial, deu uma revisão positiva desde então o interesse pelo projeto disparou.

Estava claro que as pessoas estavam animadas para adicionar frontend ‘web’ nas suas aplicações em Go, e quase imediatamente o projeto foi para além da prova de conceito que criei. No momento, Wails usava o projeto webview para lidar com o frontend, e a única opção para Windows era o renderizador IE11. Muitos relatórios de erros tiveram root nessa limitação: suporte pobre de JavaScript/CSS e nenhuma ferramenta de desenvolvimento para depurá-lo. Esta foi uma experiência de desenvolvimento frustrante, mas não havia muito que pudesse ter sido feito para corrigi-lo.

Por muito tempo, eu acreditava firmemente que a Microsoft acabaria por ter que resolver a situação do navegador. O mundo estava avançando, o desenvolvimento frondend estava crescendo e o IE não estava acompanhando. Quando a Microsoft anunciou o movimento para usar o Chromium como base para a nova direção do navegador. Eu sabia que era apenas uma questão de tempo até que as Wails pudessem usá-lo, e mova a experiência de desenvolvedor do Windows para o próximo nível.

Hoje, estou contente em anunciar: Wails v2 Beta para Windows! Há uma enorme quantidade para descompactar esta atualização, então tome uma bebida, sente-se e nós começaremos...

Sem dependência CGO!

Não, não estou brincando: Não CGO dependência🤯! O problema do Windows é que, diferentemente do MacOS e do Linux, ele não vem com um compilador padrão. Além disso, CGO requer um compilador mingw e há uma tonelada de diferentes opções de instalação. A remoção do requisito de CGO tem uma configuração simplificada massivamente, bem como tornar a depuração muito mais fácil. Embora eu tenha me esforçado bastante para fazer isso funcionar, a maioria dos o crédito deveria ir para John Chadwick por não apenas iniciar alguns projetos para fazer isso possível, mas também estar aberto a alguém que assuma esses projetos e os desenvolva. Crédito também a Tad Vizbaras cujo projeto winc me iniciou por este caminho.

Renderizador Chromium WebView2


Finalmente, os desenvolvedores do Windows recebem um mecanismo de renderização de primeira classe para as suas aplicações! Já se foram dias de contorno seu código frontend para funcionar no Windows. Além disso, você tem uma experiência de ferramentas de desenvolvedor de primeira classe!

O componente WebView2 tem, no entanto, um requisito para que o WebView2Loader.dll fique lado a lado com o binário. Isso faz com que a distribuição seja um pouco mais dolorosa do que nós gophers gostamos de ver. Todas as soluções e bibliotecas (que eu conheço) que usam WebView2 têm essa dependência.

No entanto, estou muito animado em anunciar que os aplicativos Wails não têm tal exigência! Obrigado à magia de John Chadwick, nós somos capazes de agregar essa barra dentro do binário e fazer com que o Windows carregue como se estivesse presente no disco.

Gophers se alegram! O sonho binário único continua vivo!

Novos Recursos


Houve muitas solicitações para o suporte ao menu nativo. Wails finalmente ajudou você. Os menus de aplicativo agora estão disponíveis e incluem suporte para a maioria dos recursos do menu nativo. Isto inclui itens de menu padrão, caixas de seleção, grupos de rádio, submenus e separadores.

Houve um grande número de pedidos na v1 no sentido de se conseguir um maior controlo da própria janela. Estou feliz em anunciar que há novas APIs de tempo de execução especificamente para isso. Ele é rico em recursos e suporta configurações multi-monitores. Há também uma API de diálogos aprimorada: agora você pode ter diálogos com configuração avançada para atender a todas as suas necessidades de diálogo.

Agora há a opção de gerar a configuração do IDE junto com o seu projeto. Isto significa que se você abrir o seu projeto em um IDE suportado, ele já será configurado para construir e depurar sua aplicação. Atualmente o VSCode é suportado mas esperamos dar suporte a outros IDEs como o Goland em breve.


Nenhum requisito para empacotar assets

Um grande problema da v1 foi a necessidade de condensar todo o seu aplicativo em um único JS & Arquivos CSS. Estou feliz em anunciar que para v2, não há nenhum requisito de agrupar assets, de qualquer forma. Quer carregar uma imagem local? Use uma tag <img> com um caminho de src local. Quer usar uma fonte legal? Copie ele e adicione o caminho para ele em seu CSS.

Uau, isso soa como um servidor web...

Sim, funciona como um servidor web, mas não é.

Então, como incluo meus assets?

Você apenas passa um único embed.FS que contém todos os seus assets na configuração da sua aplicação. Eles nem precisam estar no diretório superior - o Wails resolverá isso para você.

Nova Experiência de Desenvolvimento


Agora que os ativos não precisam ser agrupados, foi possível uma experiência de desenvolvimento totalmente nova. O novo comando wail dev irá construir e executar seu aplicativo, mas em vez de usar os ativos do incorporados. S, carrega-os diretamente do disco.

Ele também fornece os recursos adicionais:

  • Carregamento automatico - Quaisquer mudanças nos recursos do frontend irão ativar e recarregar automaticamente o frontend do aplicativo
  • Reconstrução automática - Qualquer alteração ao seu código Go irá reconstruir e reiniciar seu aplicativo

Além disso, um servidor web iniciará na porta 34115. Isso servirá seu aplicativo para qualquer navegador que conecta a ele. Todos os navegadores web conectados responderão a eventos do sistema como recarregar rapidamente na alteração de ativos.

Em Go, estamos acostumados a lidar com estruturas em nossas aplicações. Muitas vezes é útil enviar estruturas para nosso frontend e use-os como estado em nosso aplicativo. Na v1, este foi um processo muito manual e um pouco de sobrecarga para o desenvolvedor. Tenho prazer em anunciar isso em v2, qualquer aplicativo executado no modo de desenvolvimento irá gerar automaticamente modelos TypeScript para todas as construções que são entradas ou parâmetros de saída para métodos vinculados. Isso permite uma troca perfeita de dados modelos entre os dois mundos.

Além disso, outro módulo JS é gerado dinamicamente todos os seus métodos de vinculação. Isso fornece JSDoc para seus métodos, fornecendo a conclusão de código e dicas em seu IDE. É muito legal quando você obtém modelos de dados auto-importado quando atinge a aba em um módulo gerado automaticamente embrulhando o seu código Go!

Modelos Remotos


Colocar um aplicativo em funcionamento rapidamente sempre foi um objetivo importante do projeto Wails. Quando lançamos, tentamos cobrir muitos dos frameworks modernos no momento: react, vue e angular. O mundo do desenvolvimento frontend é muito teimoso, rápido e difícil de manter no controle! Como resultado, descobrimos que nossos modelos básicos estavam bastante desatualizados rapidamente e isso causou uma dor de cabeça de manutenção. Também significava que não tínhamos modelos modernos legais para os mais recentes e os maiores cumes tecnológicos.

Com a v2, eu queria capacitar a comunidade, dando a vocês a capacidade de criar e hospedar modelos por conta própria, em vez de do que confiar no projeto Wails. Então agora você pode criar projetos usando templates suportados pela comunidade! Espero que isto vá inspirar os desenvolvedores a criar um ecossistema vibrante de modelos de projeto. Estou realmente animado com o que a comunidade de desenvolvedores pode criar!

Em conclusão

As trilhas v2 representam uma nova fundação para o projeto. O objetivo desta versão é obter feedback sobre a nova abordagem e aperfeiçoar quaisquer erros antes de uma versão completa. Sua opinião seria muito bem-vinda. Por favor, direcione qualquer feedback para o fórum de discussão Beta.

Houve muitas reviravoltas, pivots e reviravoltas para chegar a este ponto. Isto deveu-se em parte a decisões técnicas iniciais isso precisava ser mudado, e em parte porque alguns problemas principais para os quais passamos tempo criando soluções alternativas foram corrigidos no upstream: O recurso de incorporação do Go é um bom exemplo. Felizmente, tudo se juntou no momento certo, e hoje nós temos a melhor solução que podemos ter. Eu acredito que a espera tem valido a pena - isto não teria sido possível até 2 meses atrás.

Eu também preciso dar um enorme agradecimento 🙏 às seguintes pessoas, porque sem elas essa liberação não existiria:

  • Misite Bao - Um cavalo de trabalho absoluto sobre as traduções chinesas e uma incrível busca de bugs.
  • John Chadwick - Seu excelente trabalho no go-webview2 e go-winloader tornaram a versão do Windows que temos hoje possível.
  • Tad Vizbaras - Experimentar seu projeto winc foi o primeiro passo para um Go Wails puro.
  • Mat Ryer - Seu apoio, encorajamento e feedback realmente ajudaram a impulsionar o projeto.

E finalmente, eu gostaria de agradecer especialmente a todos os patrocinadores do projeto, incluindo JetBrains, cujo suporte dirige o projeto de muitas formas nos bastidores.

Estou ansioso para ver o que as pessoas construirão com Wails nesta próxima fase emocionante do projeto!

Lea.

PS: MacOS e usuários do Linux não precisam de se sentir esquecidos - o facto de se portar para esta nova fundação está activamente em curso e a maior parte do trabalho árduo já foi feito. Aguenta firme!

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