What tech are you using guys?
Is there a lot of friction between the Rust core and the TypeScript frontend?
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.
In the order of preference:
Qt (C++), Swing (Java), and Visual Component Library (Delphi) are three tried and tested options for you.
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.
Does it have a backing company or enough sponsors to ensure its future?
If more time is available, then a core of <favorite language> plus a view part in the native platform language and API.
The major problems begin when you want to leverage the GPU or multimedia components in which case you would want something else.
https://github.com/justinfrankel/WDL
WDL Virtual Window system:
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)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.
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.
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?
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.
it's not worse than tauri/electron for desktop, and you get mobile for free if needed.
Source?
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.
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.
Seriously, even John Carmack would probably use Electron because it provides the most value to customer per unit of effort input.
Isn't that just because Electron makes it so easy to build cross-platform apps? That's a reason to use it!
Electron has democratized desktop app development and put it within reach of everybody -- but having bad apps on it doesn't make it bad in itself. Remember, the most-used programmers' editor is also an Electron app!
https://learn.microsoft.com/en-us/dotnet/maui/supported-plat...
- 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.
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.