Ask HN: How do you develop crossplatform desktop applications in 2019? - kerkeslager
======
polymonster
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.

