E foi lançado o Electron 28 com melhorias no suporte ao Wayland, e mais. Confira as novidades e veja como instalar no Linux.
O Electron permite que você escreva aplicativos de desktop multiplataforma usando JavaScript, HTML e CSS
A plataforma Electron permite criar qualquer aplicativo gráfico usando tecnologias de navegador, cuja lógica é definida em JavaScript, HTML e CSS, e a funcionalidade pode ser estendida por meio de um sistema de plugins.
Os desenvolvedores têm acesso aos módulos Node.js, bem como a uma API estendida para criar diálogos nativos, integrar aplicativos, criar menus de contexto, integrar-se com o sistema de exibição de notificação, manipular janelas e interagir com subsistemas do Chromium.
Ao contrário dos aplicativos da Web, os programas baseados em Electron são entregues como executáveis autônomos que não estão vinculados a um navegador.
Ao mesmo tempo, o desenvolvedor não precisa se preocupar em portar o aplicativo para várias plataformas, o Electron fornecerá a capacidade de compilar para todos os sistemas com suporte ao Chromium.
O Electron também fornece ferramentas para organizar a entrega e instalação automática de atualizações (as atualizações podem ser entregues de um servidor autônomo ou diretamente do GitHub).
Agora, uma nova versão do Electron 28 foi lançada recentemente, fornecendo uma estrutura independente para o desenvolvimento de aplicativos front-end de plataforma cruzada com base nos componentes Chromium, V8 e Node.js.
Novidades do Electron 28
A nova versão do Electron 28 já foi lançada e a mudança significativa no número da versão se deve a uma atualização da base de código do Chromium 120, Node.js 18.18.2 e do motor JavaScript V8 12.0, além de algumas mudanças importantes serem implementado, além de adicionar novos recursos, correções de bugs e muito mais.
Sem dúvida, uma das mudanças mais importantes que se destaca nesta versão é a adição de suporte para módulos JavaScript ESM (módulos ECMAScript), construídos de acordo com a especificação ECMAScript 6 e utilizados em aplicações web baseadas em navegador (anteriormente, Electron suportava apenas módulos CommonJS específicos do Node.js).
Os módulos ESM podem ser usados tanto no próprio Electron quanto em drivers baseados na API UtilityProcess. Além disso, o suporte para módulos EMS também foi adicionado ao Electron Forge, a ferramenta completa para empacotar e distribuir aplicações Electron.
Outra mudança que se destaca nesta versão do Electron 28 é que no Linux foi implementado o processamento da variável de ambiente ELECTRON_OZONE_PLATFORM_HINT, o que facilita a habilitação do suporte ao protocolo Wayland em aplicações baseadas na plataforma Electron (você pode fazer isso sem adicionando o sinalizador “–ozone-platform-hint” ao arquivo) Melhor desempenho de fork() e execve() na API child_process no Linux.
No MacOS, a nova versão do Electron 28 introduz diversas correções, das quais se destaca a solução para um problema de desempenho, foi corrigida a aplicação que ativava incorretamente as janelas do painel no macOS Sonoma, foi corrigido um problema onde o BrowserWindows poderia travar no macOS com frame:false e roundCorners:false ao entrar em tela cheia e agora o mapeamento de partição foi reativado no macOS.
Além disso, a configuração padrão de WebContents.backgroundThrottling foi alterada para “false”, o que desativa a aceleração da taxa de quadros ao renderizar conteúdo usando o objeto BrowserWindow.
Falando em BrowserWindow, os métodos BrowserWindow.getTrafficLightPosition() e BrowserWindow.setTrafficLightPosition() já foram removidos, que foram inicialmente marcados como obsoletos no Electron 24 e substituídos por BrowserWindow.setWindowButtonPosition e BrowserWindow.getWindowButtonPosition().
Das outras mudanças que se destacam no Electron 28, temos:
- Adicionada API para ajudar os aplicativos a saber quando evitar fundos semitransparentes.
- Foram adicionadas diversas propriedades ao objeto de exibição, incluindodetectado ,maximumCursorSize e nativeOrigin.ipcRenderer.sendTo
foi descontinuado e MessageChannel deve ser usado em seu lugar - O suporte para eventos de rolagem e toque foi descontinuado
- Eventos agregados mouse-entery mouse-leavede bandeja para Windows
- Adicionada opção generateTaggedPDF para permitir que webContents.printToPDF() gere arquivos PDF marcados
- Adicionada propriedade tabbbingIdentifier ao BrowserWindow.
- Adicionado evento de clique do meio do mouse ao ícone da bandeja.
- Adicionado suporte para várias outras chaves de manifesto de extensão, incluindo host_permissions, autor e short_name.
- Corrigido um problema em que chrome://gpu não conseguia carregar.
- Correção da regressão de desempenho de janela opaca no DWM
- Adicionada capacidade de enviar cabeçalhos HTTP com webContents.downloadURL()
- Suporte aprimorado para módulos CommonJS em scripts de pré-carregamento em área restrita, passando module.exports fictícios.
- Corrigido um problema em que aceleradores que representam chaves DOM não eram convertidos corretamente para o formato webContents.sendInputEvent().
Para saber mais sobre essa versão do Electron, acesse a nota de lançamento.
Como instalar ou atualizar o Electron
Para desenvolver com base no Electron nas principais distribuições Linux, consulte o seguinte documento.
Para rodar aplicativos e/ou trabalhar com Electron dentro do Linux, basta ter Node.JS instalado no sistema e seu gerenciador de pacotes NPM.
Para instalar a versão mais recente, basta digitar o seguinte comando:
npm install electron@latest