
Ask HN: Why does mobile appear to have a better dev UX compared to desktop UIs? - notheguyouthink
I&#x27;m trying to understand why it&#x27;s so much easier to make a native and good looking application on Mobile than it is on Desktop.<p>Recently I stumbled upon an app I liked, saw it was based on Electron and immediately lost my excitement. Electron to me represents a failure in Desktop frameworks. I wished that we could have something like React Native for Desktops.. and then it hit me, if we made React Native for Desktops... what would it use? Do desktops even have native UIs akin to mobile?<p>All I ever see are cross platform frameworks that impose non-comformant and non-standard UI designs on applications. Usually paired with poor developer experience to boot. Why is this? It feels like mobile OSs strive to make everything look good and be standard between applications, and yet desktop (OSX&#x2F;Windows&#x2F;Linux-frontends&#x2F;etc) seem to care not for these features.<p>Now, I don&#x27;t profess to be well informed on the subject - take any statements of mine as a inquiry. So, thoughts? Why is desktop.. the way it is?
======
flukus
The biggest problem is that MS seriously dropped the ball. There was never a
developer friendly API like Qt or Gtk for windows, MS wen't down the
drag'n'drop tooling route instead. The other problem was that everything was
grey boxes by default and almost no apps stick to the native look and feel,
let alone allow themeing. This is even true of most MS apps like office and
internet explorer.

Contrast this to linux desktops where you can knock out applications fairly
easily and it uses the local theme by default. They made it easy to do the
right thing so most apps do the right thing. For an example, here is a todo
list I threw together: [https://gitlab.com/flukus/gtk-
todo/blob/master/main.c](https://gitlab.com/flukus/gtk-
todo/blob/master/main.c) . I just define my app, I don't do any theming, I
don't worry about font sizes or color scheme, I just use the defaults that the
toolkit provides and when I open the app it looks like every other gnome app.
This is what windows was and probably still is missing. And the problem seems
to be getting worse, see the awful background image in the windows 10 email
client.

Aside from that, mobile UI's are simply much easier than desktop UI's. There
is a lot less variablity in screen real estate for one, everything is full
screen all the time. The don't have nested menus, they don't have accelerator
keys, they don't have to (can't) display complex data, they are simple out of
necessity.

~~~
catdog
On Windows nobody cares a bit about a consistent UI and now even Microsoft
doesn't care anymore. A bare Windows 10 itself offers a happy patchwork of
everything you can imagine. From the old, inflexible "gray boxes" (only not so
gray anymore) to random colorful, oversimplified, touch oriented nonsense.

> I just define my app, I don't do any theming, I don't worry about font sizes
> or color scheme, I just use the defaults that the toolkit provides and when
> I open the app it looks like every other gnome app.

On Linux you still have the problem with synchronizing GTK and Qt look and
feel but that also improved a lot over the recent years. It not perfect
overall but still pretty good.

------
catdog
Ever tried Qt? It's cross platform but still tries it's best to feel as native
as possible. It brings its own C++ IDE (Qt Creator), is well documented and
nowadays you can use QML [1] to build your UI [2].

[1] [https://en.wikipedia.org/wiki/QML](https://en.wikipedia.org/wiki/QML)

[2]
[https://www.youtube.com/watch?v=_6_F6Kpjd-Q](https://www.youtube.com/watch?v=_6_F6Kpjd-Q)

------
leipert
Yes, there are native UIs on desktop. I tailored my answer for react-native,
as you mentioned that.

1\. macOS -> Aqua [1], apparently there exists an community package for react-
native [2]

2\. react-native-windows [3] by Microsoft which apparently has support for
Windows 10 and xbox

3\. There are other UI kits for linux and cross-platform, e.g. qt and gtk. I
did not find much about react native there, except for ubuntu [4]

PS: I got those hits by googling "react native for desktop" :P

[1]
[https://en.wikipedia.org/wiki/Aqua_(user_interface)](https://en.wikipedia.org/wiki/Aqua_\(user_interface\))

[2] [https://github.com/ptmt/react-native-
macos](https://github.com/ptmt/react-native-macos)

[3] [https://github.com/Microsoft/react-native-
windows](https://github.com/Microsoft/react-native-windows)

[4] [https://github.com/CanonicalLtd/react-
native/blob/ubuntu/REA...](https://github.com/CanonicalLtd/react-
native/blob/ubuntu/README-ubuntu.md)

~~~
notheguyouthink
Haha, I apologize for the lack of React Native googling, but it was more of an
example. Perhaps I should have omitted it, because it was the least meaningful
part of my question.

Though, you did partially answer it. Apparently Aqua is the official kit for
OSX. My next question would simply be, why isn't it more common? I so often
see crappy UIs or hand made UIs, nothing feels as standard on Desktop as it
does on Mobile.

I know I know, mobile suffers a lot too, but I think it suffers much less in
recent years - the builtin UI frameworks have vastly improved. Yet, every
Desktop app I use seems to have a different UI, a different style, a non-
consistent interface.

Thoughts?

~~~
leipert
Mhm. I can think of the following categories of Apps (I am looking from an
macOS kind of angle):

1) Intended for macOS Platform, e.g. Little Snitch, Paw, Pixelmator look good,
as they use Aqua.

2) Built with GUI specifications by another company in mind e.g. MS Suite
looks good on macOS, but uses Ribbons, etc. and on iOS Google Apps (Inbox,
Maps) use Material Design. This is due to the issue, that Google and Microsoft
do not want repeat UX Research and Development for another platform.

3) Java Applications like Jetbrains Webstorm/IntelliJ

4) Cross platform applications using Gtk or Qt like Handbrake

2-4) are basically the same - saving costs and/or time. And do not forget: If
you are building a product, let's say Atom, Office or Webstorm, you want to
users be able to use an familiar interface regardless of their OS

I think mobile had the big advantage of not making it easy to use other
frameworks due to restrictions AND being around relatively young. 2-4) are
quite common since before smartphones were around.

The main reason where mobile suffers is wrapped web views.

------
bsvalley
Touch screens introduced a lot of new gestures. It's not about mouse clicks
anymore but people's fingers. You have to think about your user interaction in
a whole different way. Slower animations, smoother movements, more feedback
and responsiveness.

~~~
infinii
Not to mention the Accelerometer.

------
ajitid
[https://github.com/Microsoft/react-native-
windows](https://github.com/Microsoft/react-native-windows) what about this?

