HACKER Q&A
📣 kerkeslager

How do you develop crossplatform desktop applications in 2019?


How do you develop crossplatform desktop applications in 2019?


  👤 polymonster Accepted Answer ✓
We do a lot of the work ourselves with our own engine used for games, 3D graphics, video playback and editing tools. Targeting all desktop, mobile and console platforms.

Using c++ we have a quite minimal amount of platform specific code by making tight abstractions and trying to work on shared code as much as possible.

We use open source where possible to save time and repeated work. Using things like ImGui for Ui..

But all platform specific things we abstract ourselves (window creation, graphics apis, video decoders, input, timers, threads etc)

I have worked on proprietary game engines for over 10 years and while it may sound a lot of work to reinvent the wheel, when you know how and can do it well the end of cycle development can be a breeze when everything is bespoke to your needs...

alternatively I have worked on products using unity, qt and other frameworks and have spend months of optimisation grinding to ship..


👤 oropolo
The far more common approach at the moment is to use Electron though hopefully Google will create Linux, macOS, and Windows targets for compiled binary Flutter applications in the future.

👤 davismwfl
It would depend on what it needed to do, but most likely my goto would be Qt for anything with any complexity or need to access hardware or needing performance in anyway.

I have used Qt quite a few times in the past and it has always proven very capable. It isn't perfect, no framework is, but it is powerful and you can work with it, plus there are tons of examples and people with experience with it.


👤 kevinherron
I find Qt and JavaFX applications are both generally nice to use. Of course anybody can write a bad application with any framework, so the framework alone won't save you.

While I only have firsthand experience developing with JavaFX, if I were doing something in C++ or Python I'd reach for Qt.


👤 karmakaze
Flutter or JavaFX

👤 seanwilson
Browser extensions are an option.

👤 billconan
I would use Qt. It's nice.