
Ask HN: What are the best cross-platform options for desktop (and mobile)? - rustyrose
I&#x27;m interested in developing cross-platform applications. I know that it&#x27;s not ideal and there are some shortcomings, but I want to support Windows, Mac, and Linux. If the solution offers some form of mobile support as well, even better. Electron is popular, but many seem to have a negative opinion of it. What are my best options? I&#x27;m flexible and can learn any language&#x2F;framework required.
======
danieka
I'm a firm believer in web technologies. There are a ton of reasons to build
your app as a web app. Only one code base, in the true sense of the word.
There are good frameworks and with transpilation you can support a wide range
of browsers. I feel very productive with web technologies, but that may be due
to a couple of years of experience. A huge benefit is that your application
does not have to be installed, which can be a problem for users in a
corporate, locked down, environment.

Do you need Electron? You can do a lot of cool stuff in browsers these days.
If you go through some of your requirements I might be able to give
suggestions on how to implement them in the browser.

This of course depends on what you are doing. If you think performance might
be a problem or you know your users will have low end mobile devices you
should probably consider something else.

I use AngularJS/Angular and Ionic/Ionic 3 daily and I can truly recommend both
Angular and Ionic 3. The framework is now easier to develop in and performance
is greatly increased since AngularJS. That being said, many swear by React and
I'm sure that if you pick it you will not have any reasons to regret that
choice.

~~~
danieka
By the way, if you choose web I strongly recommend Typescript. Works fine with
whatever framework you choose and having a type system is invaluable for
productivity. It works great together with Visual Code. I really, strongly
encourage you to try it.

------
oblib
I asked myself that question about a year ago. What I did was go play around
with the tutorials at todomvc.com to get a feel for what was out there.

When I was done I couldn't really decide what was best and after straining
over that for a few weeks I finally decided to look at what was "easiest" (for
me) instead.

That allowed me to look at it an entirely new way. That was a question that I
could answer.

I ended up choosing PouchDB/jQuery/Bootstrap.

Those tools provide an amazing feature rich set of APIs that work together
seamlessly and all have great community support. From there I can look for
smaller libraries of code that focus on a specific task and drop them in too.

Once I got started with them I was amazed at how productive I was. It's easy
(for me) to get things done using those tools.

------
bananicorn
Okay, depending on the complexity of your app, maybe bundling it with
webkit[0] is a solution? You'll need to know about cross-compilation in C
though. It's certainly more complicated than just using Electron, but if you
don't want all the bloat that comes with it and don't need features only
Electron offers, then it might just be fine.

[0][https://wiki.gnome.org/Projects/WebKitGtk/ProgrammingGuide/T...](https://wiki.gnome.org/Projects/WebKitGtk/ProgrammingGuide/Tutorial)

------
seanwilson
What kind of application? If you're working by yourself, faster time to market
and simpler cross platform support is a massive benefit that unfortunately is
more important than CPU and memory use for most applications so Electron makes
a lot of sense. Electron gets a lot of negative comments on HN but for many
apps I don't think consumers will have strong opinions about it.

Most small teams don't have the resources to develop polished native Windows +
Mac + Linux apps. Electron might not be perfect but it's better than having to
exclude a platform.

------
floating_cloud
Qt or CopperSpice? If mobile is not a priority and native look and feel on
desktop is essential then go for wxWidget. Ultimate++ is another option.

------
paxpelus
You may want to have a look on Quasar framework. It can do web, windows,
Linux, Mac,iOS, android.

------
1ba9115454
I would go for Bootstrap and Elm.

Bootstrap gives you all the responsiveness you need to go across platform.
It's basically a HTML and CSS library. Everything you need to create UI.

Then I would use the Elm programming language.

Why ?

Because it's a gateway to Haskell, you'll learn loads.

------
mhoad
It would probably be worth asking yourself if the main criticisms of Electron
are actually something you or more importantly your end users care about
because if not it is a fairly obvious answer with a lot of major upsides as
well.

------
j1e
For business/database apps Xamarin Forms can work really well.

~~~
jetti
That doesn't seem to fit with what OP wants, being able to deploy to Windows,
macOS and Linux. According to Xamarin's website[1] Xamarin.Forms is:

"Xamarin.Forms is a cross-platform UI toolkit that allows developers to easily
create native user interface layouts that can be shared across Android, iOS,
and Windows Phone."

[1][https://developer.xamarin.com/guides/xamarin-
forms/](https://developer.xamarin.com/guides/xamarin-forms/)

------
assafmo
Go? React native? ionic? depends om your specific needs...

I really love go's cross compilation, it's awesome and super easy.

~~~
DoctorOW
Go is pretty cool but it can't be compared to Electron at all... Electron is a
framework for HTML/CSS/JS guis, while Go is a programming language without any
great GUI support.

------
umen
kaspersky antivirus do not allow this extension to run complains about :

\Extensions\nicokganngdkmjiejngaacdlllkdpikn\0.1.1_0\bg.js

what you have there ?

~~~
umen
sorry wrong post , how do i delete it ?

~~~
c8g
you can only delete within two hours.

