What are your requirements? Performance, development speed, native look and feel, ... Which languages are you familiar with? Do you have a preference with regards to the language?
I have good experience with https://wails.io. It uses a Go backend and a JavaScript frontend with Go functions exposed to the JavaScript side, and events with senders and listeners on both sides. All without the enormous bloat of Electron.
On the JavaScript side you can use whatever you like: plain JavaScript, react, vue, svelte, … whatever you’re familiar with.
And it can cross compile to Windows, Mac and Linux, so all major platforms covered.
Allows the building of dynamic, complex UIs within OS hosted windows
Included controls for text display, combo boxes, buttons, sliders, list boxes
Supports full transparency, overlays, controls with shadows/highlights outside of their range
Fully themeable (uses LICE for compositing)
Personal projects, Racket with gui-easy. Close to frictionless GUI development, very nice language(-platform) to build with. Excellent metaprogramming.
Professionally, Java and JavaFX. Decent multi-platform story, there's a config flag for tuning everything, and there's a library for pretty much anything anyone has ever had an issue with and when they don't fit as well as you'd like you just tear it up with reflection and fix.
In general for a great experience on the desktop you want to use the native stack of each platform, so C# / Windows SDK in Windows, GTK in most Linux distros and whatever Mac officially recommends.
You could use electron and build cross platform apps using web technologies, but I'm yet to use an electron based app that doesn't feel like crap.
VS Code is electron and it has been optimized to the hilt. I have used it on Mac, Windows and Linux and the experience is uniformly great. It feels native on every platform (responsiveness is not as snappy as vim but it’s good enough and I’m getting a lot of extra features in return, like remote for instance)
But it didn’t come for free. I can tell a lot of engineering hours were spent fixing little issues like different/conflicting keystroke mappings in all 3 platforms.
And the result is noticeable. Electron is becoming synonymous to shoddily built apps. Even though you can write buggier apps with native SDK, but the amount of works that been put into them elevates the final result. Not so much with Electron.
with no additional context when running on mac/linux/windows, I like boring technologies, doing everything within python running locally while rendering everything in the user's default web browser with basic HTML/js/css
Most ideas that could be desktop apps would be just as good as web apps or browser extensions.
For myself Ive been using libui-ng.github.io/libui-ng/ for a few projects lately
I disagree. They might be "better" from the point of view of the developer, but from the user's perspective, web apps are often much worse.
- Needlessly ties the app to the web / Internet connectivity in order to work (a disadvantage unless the application's purpose involves queries over the Internet).
- The application can change on you without warning and without you taking a deliberate step to update, including adding unwanted functionality and removing wanted functionality.
- You can be denied access to the application remotely (this is also true for native applications that require an account to work).
- Look and feel inconsistent with the rest of your applications / operating system.
codeptualize|1 year ago
obdev|1 year ago
Is there a lot of friction between the Rust core and the TypeScript frontend?
nitai|1 year ago
pdevr|1 year ago
In the order of preference:
Qt (C++), Swing (Java), and Visual Component Library (Delphi) are three tried and tested options for you.
agilob|1 year ago
mherrmann|1 year ago
steffann|1 year ago
On the JavaScript side you can use whatever you like: plain JavaScript, react, vue, svelte, … whatever you’re familiar with.
And it can cross compile to Windows, Mac and Linux, so all major platforms covered.
obdev|1 year ago
Does it have a backing company or enough sponsors to ensure its future?
mhd|1 year ago
If more time is available, then a core of <favorite language> plus a view part in the native platform language and API.
unknown|1 year ago
[deleted]
fidotron|1 year ago
The major problems begin when you want to leverage the GPU or multimedia components in which case you would want something else.
mike986|1 year ago
https://www.cockos.com/wdl/
https://github.com/justinfrankel/WDL
WDL Virtual Window system:
yoav|1 year ago
You can think of it like Tauri but you just write typescript for the main and browser contexts. Under the hood it’s powered by bun and zig.
https://github.com/blackboardsh/electrobun
Still a ways to go (I’m currently porting a large app from electron to electrobun and filling in the api as I go) but check back in a couple months.
It’ll be (in my opinion) the best stack to build desktop apps.
cess11|1 year ago
Professionally, Java and JavaFX. Decent multi-platform story, there's a config flag for tuning everything, and there's a library for pretty much anything anyone has ever had an issue with and when they don't fit as well as you'd like you just tear it up with reflection and fix.
obdev|1 year ago
JavaFX, however, seems to have many unfixed bugs, even though it's actively maintained.
How do you overcome the obstacles when developing and deploying your JavaFX application[s], so it's working well for you?
unknown|1 year ago
[deleted]
1oooqooq|1 year ago
it's not worse than tauri/electron for desktop, and you get mobile for free if needed.
triyambakam|1 year ago
bunbun69|1 year ago
Source?
obdev|1 year ago
pid-1|1 year ago
You could use electron and build cross platform apps using web technologies, but I'm yet to use an electron based app that doesn't feel like crap.
wenc|1 year ago
But it didn’t come for free. I can tell a lot of engineering hours were spent fixing little issues like different/conflicting keystroke mappings in all 3 platforms.
bitwize|1 year ago
Seriously, even John Carmack would probably use Electron because it provides the most value to customer per unit of effort input.
skydhash|1 year ago
kleiba|1 year ago
SeriousM|1 year ago
janice1999|1 year ago
[1] https://www.avaloniaui.net/
jjice|1 year ago
https://learn.microsoft.com/en-us/dotnet/maui/supported-plat...
unknown|1 year ago
[deleted]
sandwichukulele|1 year ago
toddmorey|1 year ago
AhtiK|1 year ago
flapsflapsflaps|1 year ago
[deleted]
triyambakam|1 year ago
petabyt|1 year ago
ryandrake|1 year ago
- Needlessly ties the app to the web / Internet connectivity in order to work (a disadvantage unless the application's purpose involves queries over the Internet).
- The application can change on you without warning and without you taking a deliberate step to update, including adding unwanted functionality and removing wanted functionality.
- You can be denied access to the application remotely (this is also true for native applications that require an account to work).
- Look and feel inconsistent with the rest of your applications / operating system.
- Performance tends to be worse for web apps.
skydhash|1 year ago