Hacker News new | ask | show | jobs
by mateuszf 3039 days ago
It's not that simple. You can go three routes:

1. Make the apps look pixel perfectly the same on all platforms - that's what the Java Swing did. Result - all the apps feel "alien" and not native for the users.

2. Make all the apps look and behave native and use UX patterns consistent to the given platform. Result - you will have to program them differently.

3. Somewhere in between - all you get is mediocre GUI with not very pleasant development model.

So the problem is not with the GUI toolkits but with inconsistent UX paradigms between the platforms / different input models, interaction models, etc.

2 comments

Alien would be okay, were it not ugly.

Swing is unusable and ugly.

Just look at and try to use a Swing file picker.

...

Anyway, I'd gladly program them differently for closer to native experience, if it were easy to program. Currently it's either Qt (C++) or GTK (C), or completely useless/out-of-date bindings.

And thus any glorified WebView reigns supreme.

Python bindings for both Qt and GTK+ are really, really good. For other languages it sure is hit-or-miss though.
I started to type a rather pessimistic reply about how horrible it is to set up py3 + qt, but actually pip3 install pyqt5 works well now!
Yeah, I agree - C/C++ are the reasons why Qt is not popular.
I have no problem with things feeling alien, so that would be my preference.

For example I love the Telegram desktop app.

Telegram looks native on Windows 10 though. It was designed to look like a flat modern app and it excels at that, hamburger menu and all.
Hmm, the header bar doesnt look native to me (it looks amazing)