So, if not Electron apps, then what?
I'm trying to get some data on building a cross platform desktop app. It's to help devs in my company by giving a GUI for few tasks. But I don't want to suck up their RAM. What are the other alternatives that come close to electron in terms of productivity while consuming low memory?
35 comments
[ 4.0 ms ] story [ 72.3 ms ] threadElse, my favourite solutions are Kotlin/TornadoFX/Java/JavaFX.
It does, Avalonia: https://github.com/AvaloniaUI/Avalonia It looks like a pretty promising project.
There was another one I believe I saw on HN a while ago but I can't seem to find it.
Some of these are heavyweight, others are just wrappers for the native libraries.
If this is a dev tool I wouldn't rule out a curses based TUI app either.
edit: to be clear, one clickable thing that works on mac, windows, linux, and... maybe arm? there is an androwish, but I haven't tried it.
If you can spare the resources, create per platform apps. If not, then electron is your only headache less option.
Qt is LGPL, you can use it commercially for free.
It sounds like this is for an internal app they don't plan to distribute, so even the GPL would be fine and not require them to open source it.
And it's not just RAM. Electron rendering is slowwwww.
Others have mentioned Qt/QML, another solid choice.
miniSpere (js): http://www.spheredev.org/
https://proton-native.js.org
We're now at the point where you can bundle your app, JVM pieces needed, into a single distributable for each platform. With Graal and whatever else on the horizon there might even be just plain compiled-to-native options coming too.
If you don't like the JVM ecosystem I think QT also has potential but it seems much more difficult and labor intensive to create a decent application.
Personally, I'd take the hate about Electron here with a huge pinch of salt. RAM isn't expensive, developer machines tend to have a lot of RAM and you're only wanting to launch a single app. A minimal Electron app takes about 100MB of memory which isn't much if you've got e.g. 8GB of RAM.
A solution is to create your own Electron by creating the UI with HTML/CSS/JS and using the OS native APIs for the window and "back end" code.
Depending on your use case it might be feasible to do that yourself, or use a project like NodeKit.
https://nodekit.io/
https://github.com/zserge/webview
C/C++/Golang webview. Build your UI in html/js and offload any heavy tasks to compiled languages. There's also a rust binding on github.
The sample app shows what you can do