DEV Community

Pacharapol Withayasakpunt
Pacharapol Withayasakpunt

Posted on

What are options for Multi-platform desktop app builder?

Some of the options I know,

  • Deliver HTML/CSS/JS directly, without a backend
  • Electron builder + MacOS + Docker with Wine
  • Build for Window with Docker Wine
  • Deliver shadow JAR / fat JAR
  • Build on Travis CI / Appveyor + GH_TOKEN (I don't know how to do this)

What are other options, if I want to use web framework, but want to avoid Electron?

Discussion (6)

Collapse
munabedan profile image
muna kimeria

I have been using eel.js.

Eel is a little Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries.

Its pretty lightweight.

Collapse
tlaxcalajuan profile image
tlaxcalajuan

are you using eel with frontend framework js?

Collapse
jcolag profile image
John Colagioia (he/him)

I've been using Proton Native, recently. It's not ready for general use---you can't set the window title/icon, the it doesn't know about word wrap, you can't disable controls, there's no easy way to package it for a non-technical user, and so forth---but if you're looking at this for a simple project and are willing to work with React (it's based on React Native), it has been working pretty well for me.

The only other decent "solution" I've found is to find a library for your language that lets you use a portable "widget toolkit," like wxWidgets, YUE, GTK, QT, or probably a bunch of others I'm forgetting. Those work well enough, but you usually end up writing code to lay out your window and need to get the toolkit installed on the user's machine.

Collapse
joan41868 profile image
Yoan Sredkov

Depending in the language you want to use as a backend, you have quite alot of options.

Electron- compatible with python, golang, node.js (from my expirience)

Qt framework - can work with python(pyQt5, pyQt4), and can also go with c++/C if you are hardcore.

Tkinter- for python, as far as i know, i havent used it.

Java - Java Swing, JavaFX, and the old awt as far as i remember.

There is Proton, similar to electron, but it is not production ready, as mentioned in other comments.

I hope i gave you some options :)

Collapse
raguay profile image
Richard Guay

I still prefer NWjs. I can use node modules anywhere in my code without worrying about the server/client split.

Collapse
theanonymost profile image
JM

I am sorta new at this so I'm not 100% sure but I think react is one.