DEV Community

Avalander
Avalander

Posted on

How would you build a desktop app nowadays?

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.

Top comments (12)

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

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.

Collapse
 
metalmikester profile image
Michel Renaud

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.

Collapse
 
avalander profile image
Avalander

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.

Collapse
 
nareshravlani profile image
nareshravlani

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.

Collapse
 
mkenzo_8 profile image
mkenzo_8

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

Collapse
 
ca55idy profile image
ca55idy

Still code commercial desktop apps with Java

Collapse
 
prashanth1k profile image
Prashanth Krishnamurthy

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/

Collapse
 
avalander profile image
Avalander

Interesting project, thanks for sharing!

Collapse
 
maheshkale profile image
Mahesh K

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

Collapse
 
avalander profile image
Avalander

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