Executando verificação de segurança...
5

O que acham do electron?

Olá, espero que todos estejam bem!

Recemente fiz uma aplicação de um relógio flip em html, css e js, até fiz uma publicação aqui sobre. Já ouvi falar diversas vezes do electron e fiquei bem curioso sobre, ele promete fazer aplicações desktop multiplataformas com essas ferramentas mencionadas. Por algum motivo hoje me deu uma coceirinha de testar o electron passando esse app para ele.

Alguém já utilizou? É uma ferramenta legal? Vale a pena se aventurar?

Obrigado!

Carregando publicação patrocinada...
6

Nunca utilizei mas ferramentas como:

  • Visual Studio Code
  • Figma
  • Discord
  • Slack
  • Obsidian

São todos construídos em Electron.

Pessoalmente eu sou contra usa - lo. Ele é muito mais "gordo" do que opções como Wails ou Tauri, e tem processos internos de otimização que não combinam bem, como usar JIT e ter um garbage collector.

Em comparação Wails e Tauri também usam WebView, com animações feitas em React, Vue ou seja lá qual for a lib. Mas o backend é puramente uma lang compilada (Go ou Rust) então não tem um processo intensivo de CPU. E ocupa muito menos RAM sendo igual ou superiormente responsivo

5

Por isso não uso nenhum deles :D

Concordo com você tenho palestra sobre isso e será tema secundário do primeiro vídeo do meu canal. Mas não acho que os "concorrentes" sejam tão melhores assim. Já mostro o porquê das aspas.

A não ser que algo tenha mudado sem eu saber, e seria uma loucura fazer isso, o Electron não usa WebView. Na verdade a vantagem dele, sim, tudo tem vantagens, além das desvantagens, é justamente não usar WebView e ficar dependente do renderizador que o sistema operacional oferece, que pode até quebrar sua aplicação em alguma atuaalização que você não tem controle. Apesar dos problemas, o Electron te dá controle sobre a plataforma. Tinha que ter uma solução.

Pela minha experiência em quase todos os casos é um erro de engenharia adotar o Electron e algumas alternativas. Existem alguns casos que pode fazer sentido, mas o resto é decisão política ou simples incompetência.

Existem alternativas ou experimentos para várias linguagens, por exemplo .NET:


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

2

Olá, obrigado pelo comentário!

Vou pesquisar sobre os mencionados Wails e o Tauri. Não tenho uma experiência com desenvolvimento para desktop mas tenho uma curiosidade, vou procurar mais sobre.

Desejo tudo de bom para você!

3

Estou oficialmente utilizando o Electron há um ano para desenvolver um novo sistema de PDV (Ponto de Venda) para uma conhecida rede de lojas no Brasil. Quando iniciamos o projeto, avaliamos as opções entre o Electron e o Tauri, e, após algumas pesquisas, decidimos pelo Electron devido à sua comunidade mais ampla, o que nos trouxe mais segurança para enfrentar os desafios que surgiriam.

Minha opinião sobre o Electron é que ele é uma ferramenta bastante acessível, com uma documentação clara e detalhada. Acredito que vale a pena explorar e se aprofundar no seu estudo. Como dica, para quem busca algo mais desafiador, sugiro implementar a lógica do timer do relógio flip no lado do Electron e passar as informações para a interface usando IPC (Inter-Process Communication). Além disso, considere executar o timer em uma thread separada para evitar sobrecarregar a thread principal.

2

Apesar de todas as controvérsias, eu gostei de usar Electron. No meu antigo emprego, tínhamos sistemas rodando em Electron, tanto em desktops quanto em mini-totens e totens. E funcionavam bem; tinha opção de auto-update etc. E você pode usar o conhecimento que já tem em HTML, CSS e JavaScript, ou até mesmo React, para fazer algo. Claro que, se quiser algo mais robusto ou performático, terá opções melhores. Mas para testes, experimentos e até projetos mais simples, funciona muito bem. No caso do meu antigo emprego, esses produtos em Electron eram os principais produtos da empresa, e conseguiam da conta do recado.

1

Acredito que foi direto ao ponto pelo que pesquisei, é uma ferramenta prática que não tem tanta performance.

Obrigado pelo seu relato!
Tudo de bom!

2

Eu tenho um pouco de experiência com electron. Instalei algumas vezes e brinquei um pouco para testar. Eu gerei alguns executáveis...

Eu tenho várias outras experiências com dev desktop e minha maneira favorita de gerar executáveis é com o formato hta (que eu acho que você pode se interessar).

Se você criar um arquivo de texto com a extensão hta (index.hta por exemplo)
esse arquivo é executável
e ele renderiza código html css js se você escrever nele.

Tem umas restrições mas no geral quebra um galho.

Eu acho que você pode se interessar nisso por que, assim como o electron, te permite gerar executaveis com HTML.

Eu mantenho esse tutorial sobre hta:
https://aimowin.github.io/tutoriais/modulos/12/index.htm

2

Olá, obrigado pelo comentário!

Bem legal a ideia desse arquivo .hta, vou pesquisar mais sobre. Parabéns pelo material.

Desejo tudo de bom para você!

2

Usei uma vez em um projeto da faculdade, ele é bom para aplicações se você quer construir um sistema Desktop com Tecnologias Javascript, não estudei muito a fundo sobre, mas pela minha experiência de utilização ele parece ser bem mais robusto se comparado a outras aplicações desktop(não sei se tinha relação com a forma a qual escrevi o código ou quantidade de arquivos). O resultado final foi uns 50~60MB para uma apliação simples de envio de dados em formulário.

2
2

Eu utilizei ela recentemente fiz sistema inteiro utilizando ela, desde a conexão com banco até os cruds e geração de pdfs.
Eu comecei mal sabando como iniciado o projeto, a curva de aprendizado foi bem rápida.
Acho que é uma boa opção para desktop. Mas como já vi que falaram aqui ela parece pecar um pouco na segurança já que dá pra usar dev tools e outras coisinhas.

Mas no geral a minha experiência foi boa e me satisfez no meu projeto. O cliente tá usando e tá tudo indo certo

1

Quase tão odiado quanto Java, uma verdadeira 💩. Na verdade é uma gambiarra de JS para fazer aplicações web parecerem desktop, tipo um pwa ou cordova, ionic para mobile.

Para desenvolvimento desktop prefira tecnologias feitas para isso, como C#, Flutter, Java... Já tô até esperando os down votes de fanboys, mas essa é a verdade.

2

Opa, obrigado por comentar!

É interessante seu ponto de vista negativo também, ele é bem-vindo na discussão. Existem muitas dessas ferramentas ou "gambiarras" js. Acredito que por ser uma adaptação de uma aplicação web deve ser pouco performático. Mas para o propósito mencionado ele deve se encaixar bem, vou testar ele, acredito que conhecimento nunca faz mal e vale a pena a experiência. Quem sabe depois pesquisar, aprender e fazer uma aplicação com essas tecnologias mencionadas mais especializadas nisso.

Tudo de bom para você!

1

Concordo, eu mesmo testei o electron e não o odeio, mas foi uma experiência, no mínimo, ruim. Existem aplicativos que usamos diariamente que foram feitos com ele, mas é a minoria, fora a questão de conseguir fazer uma engenharia reversa e ter acesso ao fonte. Ele é cheio de questões de segurança para fazer uma ponte entre o back e front, pois é muito fácil de ficar vulnerável e ter informações importantes acessadas pelo devtools (jpa que não passa de um navegador). É como se pegasse um site e gerasse um executável.

1

O problema que eu vejo em usar Electron com o relógio, é que seria algo um pouco mais pesado para um relógio simples. Eu acho mais viável quando é um programa desktop mais complexo como VS Code, Discord etc