How would you build a desktop app nowadays?

avalander profile image Avalander ・1 min read

I have never paid a lot of attention to the desktop landscape and I'm curious to know which tech stack you would consider to build a desktop app nowadays.


markdown guide

I'd go with Dotnet core and Avalonia UI for the UI kit.

Else, I'd go with Java/FX, C++/Qt, or Go with either wxWidgets or Qt.

I'm part of the user group that doesn't have an ultimately powerful computer, so a web-app is just a simple no for me.


I didn't know about wxWidgets, interesting option :)


It's one of the most decent cross-language SDKs, with a decent API.


On Windows, likely WPF on .NET Core. I'm not familiar enough with the other UI frameworks to say I'd pick them over it. Definitely wouldn't be Windows Forms. Once you've mastered WPF, you don't want to go back. Well, at least I don't. :D

With that said, nowadays the browser platforms are so powerful that I'll pick that over a desktop app. The only reason I'd go for the desktop is if the application just isn't suitable for a browser environment.


I would probably start with the Rust bindings for web-view, so that I could build the app with HTML, CSS and JS, and implement in Rust any OS operations that I would need to expose to the app.

The main reason to go with this approach is that I'd like to avoid electron's large memory footprint, but I know how to use the web stack and I think HTML and CSS are very powerful and flexible when it comes to building UIs.


Depends on the platform.

If I needed it to be cross-platform, and didn't need any actual interaction with the local filesystem, I'd probably just write a PWA and be done with it. Everybody has a web browser, and a well written PWA is just as usable for most things that don't need filesystem access these days as a native app (and if you use Web Assembly, it's nowhere near as much of a performance hit as most people think).

Barring that, I'd probably still use HTML/CSS/JS for the UI, though I'd have to do some serious work searching for a good front-end for that. Probably Python or C for the core logic.


Its surprising to see that no one has mentioned WPF yet. With WPF, you can develop range of desktop applications like simple form wizards to 2D-3D animations.


Still code commercial desktop apps with Java


I would do it on ElectronJS, but github.com/GoogleChromeLabs/carlo
seems very interesting :)


I'd go with Dot net core, if you are on Windows.


I would go the route of a PWA like someone else mentioned. But I find this recent project with Qt5 interesting - blog.atulr.com/nodegui-intro/


Interesting project, thanks for sharing!