6 ms·
Ask HN: Best stack for cross-platform desktop app?
What's the best tech stack for writing a performant, cross-platform desktop app in 2021?
- yread 5y agoTry some options from dotnet world Https//avaloniaui.net https://github.com/dotnet/maui https://github.com/dotnet/maui
- kowlo 5y agolink fix: https://avaloniaui.net https://avaloniaui.net
- trinovantes 5y agoDespite 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. Electron is bloated AF but it's the complete package that gets the job done from start to finish
- atat7024 5y agoOkay, so PWAs, then? Microsoft is pushing progressive web apps, now. I say we lean into it while we can. Might be our only shot.
- mikewhy 5y agoMicrosoft is building better support for PWAs into Windows. Linux is still a mixed bag, as it will depend on your DE / toolkit (lest all users be expected to install a Chrome variant). Apple will probably continue to lag behind since they will cut into app store revenue. I wish PWAs were better supported everywhere, but we're not there yet and one of the holdouts could be quite the doozy to topple. And that's without taking into consideration the things are are possible right now with Electron that still need broader support WRT web standards (serial, bluetooth, filesystem access).
- kmarc 5y agoI'd say Qt. https://www.qt.io/ https://www.qt.io/ 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. 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.
- ohazi 5y agoQt is pretty reasonable.
- FractalHQ 5y agoEvery qt app I’ve ever used is ugly, slow to add features, and has lackluster UX. What’s a good one?
- cpach 5y agoHonestly, the best applications tend to be native applications. That’s my experience at least.
- _448 5y agoWxWidgets uses a different approach to Qt. Qt emulates, where as Wx delegates :) i.e. Qt tries to emulate the native look-and-feel, where as Wx uses the native APIs of the platform for rendering GUI. So if you want true native the go with WxWidgets. This is one reason why Qt is available on mobile but Wx has struggled.
- ohazi 5y agoOff the top of my head: VLC, Wireshark, MuseScore. None of the properties you mention are inherent to Qt... getting them right takes a lot of work regardless of which GUI toolkit you use. If thats the sort of thing you're looking for, the Spotify desktop app also uses Qt on Linux (they use native toolkits on Win/Mac).
- mtberatwork 5y agoIsn't Spotify Desktop an Electron app?
- ohazi 5y agoHm, I may have been wrong. [1] suggest that it was a Qt app on Linux at one point, but this source is old, and more recent ones suggest that they now use Electron. I don't actually use Spotify, so I'm not sure - perhaps not the best example. The point I wanted to make was that you can use Qt to make "sexy" modern feeling apps, if that's a priority for you, it just takes work. Personally, I think something like VLC is a better example of a high quality app, even if the UI isn't flashy, but I guess people today want shiny stuff more than good reliable stuff. [1] https://blogs.windows.com/devices/2011/03/15/10-qt-use-cases-you-didnt-know/ https://blogs.windows.com/devices/2011/03/15/10-qt-use-cases...
- j0no 5y agoI'm following the Tauri Project https://github.com/tauri-apps/tauri https://github.com/tauri-apps/tauri
- FractalHQ 5y agoI’ve used Tauri with Svelte and they’re a dream team!! I hope more companies discover and support the combo to liberate us from the current React + Electron Appocalypse
- Morthor 5y agoFlutter is an option as well. https://flutter.dev https://flutter.dev 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.
- poletopole 5y agoI just finished a 300 page book on Dart which took all night to read. I've been hunting for an alternative to RN and heard about flutter and it definitely is as close as you're going to get. Overall, Dart gets the job done with the modern features you would expect and Flutter reminds me of SwiftUI. So I definitely have to second Flutter, but I guess the proof is in the pudding.
- colesantiago 5y agohmm, it doesn't look production ready yet.
- kowlo 5y agoIs it still resource hungry, like making an app in Unity?
- prazacker 5y agoI 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. Isn't react-native an option ? https://microsoft.github.io/react-native-windows/ https://microsoft.github.io/react-native-windows/ Does anyone have experience on the same ? Hows the support for hardware interaction like access to printers, bluetooth apis?
- namaljayathunga 5y agoI 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. https://github.com/nw-cn/awesome-nwjs https://github.com/nw-cn/awesome-nwjs
- _448 5y agoWxWidgets[0] and Ultimate++[1] are the two. Poco[2] libs are available as well. And for Web frontend there is Wt[3] [0] https://www.wxwidgets.org https://www.wxwidgets.org [1] https://www.ultimatepp.org https://www.ultimatepp.org [2] https://pocoproject.org https://pocoproject.org [3] https://www.webtoolkit.eu/wt https://www.webtoolkit.eu/wt
- CinematicStudio 5y agoI'd go with C# + Uno (https://platform.uno/ https://platform.uno/). 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.
- tomcam 5y agoTake a very serious look at: https://livecode.com https://livecode.com 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
- tonyedgecombe 5y agoThey 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.
- kowlo 5y agoI 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.