Live data from Hacker News

Ask HN: Best stack for building a desktop app?

news.ycombinator.com

41–47 of 47 posts

Re: Ask HN: Best stack for building a desktop app?

#41
post #26

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 reflectio…

Java is indeed a great technology.

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?

Re: Ask HN: Best stack for building a desktop app?

#42
post #7

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 ad…

I'm not talking about USB/hardware apps, games, or anything demanding. What I have in mind is the majority of Electron/Tauri/Flutter apps I've seen on GitHub could have been just as good as web apps. (Not trying to dunk on them, most are probably experiments for learning.)

First, compiling and releasing for OSX/Linux/Windows is a nightmare. It's way easier to deploy a web app. Not only for yourself but it's better for users. People get weirded out when they need to run an exe. And for Macs you need to go into settings and allow your unauthenticated app to run, unless you can sign the app yourself. And for Linux some people don't know they need to mark an AppImage executable to run it.

And if you choose a bulky toolkit like Electron/Tauri/Flutter and in some cases Qt, your app will probably eat up more memory than a web app. And also the final binary users need to download will be big.

So I recommend making a web app if you can, unless your idea fundamentally requires demanding hardware/IO usage/graphics/etc.

Re: Ask HN: Best stack for building a desktop app?

#43
post #41
post #26

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 reflectio…

Java is indeed a great technology. 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?

1 app 1 jar. I beat Maven until I get a JAR-file that boots outside the development repo. Usually this involves unhooking the module system.

What kind of bugs are you encountering? I have some trouble with layouts being weird sometimes but it usually sorts itself out when I make them simpler.

Re: Ask HN: Best stack for building a desktop app?

#45
post #38

Tauri https://tauri.app/

How is the developer experience when building desktop apps using Tauri? Is there a lot of friction between the Rust core and the TypeScript frontend?

Depends on what you are building, but overall I'd say the friction is minimal. For a lot of apps you won't even need to care about Rust whatsoever as you just use a bunch of fairly standard JS/TS api's.

On the Rust side it's also quite nice, easy to make plugins, good api's, all the goodies.

If you do use both the bridge can cause some friction because of serialization. I have personally not had any problems with it. Also good to note that in v2 (is in beta) they are improving this.

Edit: you asked about TS specifically, check out https://github.com/oscartbeaumont/tauri-specta it generates TS types for your Rust tauri commands.

Post reply on HN