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

Desenvolver uma aplicação nativa para desktop e para servidores sem usar electron(express + react)!

Olá!

Isso não é bem um post, mas um tutorial how to e explicando a motivação para tal produto.

Por quê

Tenho um projeto que pode ser rodado em qualquer os, mas com um diferencial, que pode ser subido facilmente em servidor sem ter que reinventar a roda, ou seja, com um build eu já abranjo todos esses sistemas, diferente do que seria com electron, por exemplo.

O que eu precisava

Um backend local, que interaja com as requisições do cliente localmente e um front end que pode ser facilmente executado, com uma linha de código ou um exe. Além disso, de algo que mirasse na experiencia do desenvolvedor(também), para tornar mais facil pra ele criar essa soluçao.

A Stack

Cheguei a conclusão que express e react seriam os melhores para tal, mas, como fazer eles interagirem juntos e de uma vez só?

Primeiro

Fiz uma aplicação react Vite em javascript padrão(que compilada retorna um html pra mim). O express então, disponibiliza isso em uma rota public, e tem suas rotas de api local para o usuario interagir. Para construir o executavel para diferentes os, mirei no Single executable applications, ferramenta nativa do node.

E para o fast refresh

Usando concurrently e --watch no vite build, consigo criar uma experiencia boa em desenvolvimento para o dev também, uma vez que a aplicação e o core(backend) sao executados juntos localmente.

Para o user

Ao executar a aplicação, basta ele abrir o navegador na porta configurada(da pra fazer automaticamente pelo script também). O mesmo se o usuario quiser executar em servidor. Basta fazer donwload e executar, então, abrir o servidor na porta configurada.
algo como:
localhost:1234 para local
<ip_do_server>:1234 se for num servidor

Querem ver isso tudo na prática?

Se quiserem posso trazer um repo aqui pra vocês darem uma olhada em como isso tudo funciona, e discutirmos e melhorarmos a ideia.

Carregando publicação patrocinada...
1

Legal seu post. porém eu não diria que é uma aplicação nativa, já que o usuário tem que abrir o browser no endereço local é saber a porta configurada pra poder usar o aplicativo. pra ter algo nativo teria que usar electron, react node gui, tauri ou qualquer coisa parecida. Existe também oreact native for windows. Existiam também versões pra macos e Linux, porém foram abandonadas.

1

Eu gostava de misturar React com python através do eel. Ele é bem mais simples que o eletron, não permite customizações, ou seja, ao abrir o app vc vai abrir um webview com o estilo do navegador que você 'setou' nas configurações.

O único motivo de usar ele. É que ele permite adicionar códigos ao javascript que se comunicam com o python, parece até algo nativo, mas não é. Dai com ele eu fazia aplicações avançadas. Do tipo: Fazer o React abrir uma pasta específica do computador ler arquivos, processar informações com o python e exibir os resultados usando o React. Era bem legal :D

0