I'd say Qt.<p><a href="https://www.qt.io/" rel="nofollow">https://www.qt.io/</a><p>As a rookie SWdev before 2010 I wanted to learn something with which I could target most of the desktop/mobile platforms. I did a lot of Qt&C++ back then; now it's even more dev friendly with Qt Quick and a ton of language bindings.<p>Then I forgot about all the desktop stuff and went on using electron based bloatware. Only to rediscover the Telegram desktop app which is crazy responsive and featureful. I wish more apps would be desktop-native.
Despite the hate that it gets, Electron is still the best imo. Every other Electron-lite solution I've tried all end up with at least one key but obscure feature removed and you either end up rewriting to Electron or throw together some jank or abandoned 3rd party package.<p>Electron is bloated AF but it's the complete package that gets the job done from start to finish
Flutter is an option as well. <a href="https://flutter.dev" rel="nofollow">https://flutter.dev</a><p>With the release of Flutter 2.0, desktop support is now fully available. Windows, Linux, and MacOS. This on top of the existing iOS and Android support. Web was also officially released.
Try some options from dotnet world<p>Https//avaloniaui.net<p><a href="https://github.com/dotnet/maui" rel="nofollow">https://github.com/dotnet/maui</a>
I wanted to know the same as well. Our requirement is for building cross platform apps for windows OS, Mac OS and code/components that works on tablets + mobile.<p>Isn't react-native an option ?
<a href="https://microsoft.github.io/react-native-windows/" rel="nofollow">https://microsoft.github.io/react-native-windows/</a><p>Does anyone have experience on the same ?
Hows the support for hardware interaction like access to printers, bluetooth apis?
Take a very serious look at:<p><a href="https://livecode.com" rel="nofollow">https://livecode.com</a><p>They have an open source version but be careful of the licensing. Basically if you start it on the open source version you need to keep the app open source (if I read the license right). But it's an absolutely wonderful prototyping environment
I'd go with C# + Uno (<a href="https://platform.uno/" rel="nofollow">https://platform.uno/</a>).<p>Disclaimer: I haven't used Uno before, but from their presentations and what i've seen online, they are top-notch. I plan to test them in the mid-term future.
WxWidgets[0] and Ultimate++[1] are the two. Poco[2] libs are available as well. And for Web frontend there is Wt[3]<p>[0] <a href="https://www.wxwidgets.org" rel="nofollow">https://www.wxwidgets.org</a><p>[1] <a href="https://www.ultimatepp.org" rel="nofollow">https://www.ultimatepp.org</a><p>[2] <a href="https://pocoproject.org" rel="nofollow">https://pocoproject.org</a><p>[3] <a href="https://www.webtoolkit.eu/wt" rel="nofollow">https://www.webtoolkit.eu/wt</a>
I'm following the Tauri Project <a href="https://github.com/tauri-apps/tauri" rel="nofollow">https://github.com/tauri-apps/tauri</a>
I am using NWJS to build cross platform apps using web technologies. I used that because of it is simple, easy and can protect source code.<p><a href="https://github.com/nw-cn/awesome-nwjs" rel="nofollow">https://github.com/nw-cn/awesome-nwjs</a>
They are all compromised in some way or another. I'd start by making sure you really need to be cross platform because if you don't then why add all the costs.
I don't know about the best stack... but you could actually do this in Unity3D if you wanted to. Good for a quick proof-of-concept if you already know it.