Iron law of native desktop app development: Code to your platform's native GUI API -- no wrappers. Or your user base will notice and one-star that shit.
You have less of an excuse on the Mac, which has literally the best GUI API in Cocoa that anyone has ever invented.
Iron law of native desktop app development: Code to your platform's native GUI API -- no wrappers.
Not so iron, if you have many platforms to manage. Usually it doesn't worth it to manage tons of separate toolkits for each platform, if there is no common abstraction at all. It's just too costly.
If you don't mind your app looking like shit on all platforms, this is a viable strategy. A lot of specialist applications are like this: for example, I used to develop Qt-based GUI tools for robotics.
If your app looking like shit will cost you significant sales -- as is the case for most productivity and design apps -- then yes, you have to port the GUI bits to each and every toolkit you're using.
Not true. Lot's of applications use generic abstractions and look good at the same time.
Firefox, LibreOffice, VirtualBox and etc. If you don't know how to make good GUI using generic toolkits it doesn't mean it's not possible.
Anyway, if you buy application for its "looks" - there is something seriously wrong already. It should look good, no doubt, but it should be functional first.
>as is the case for most productivity and design apps
Completely the opposite. They tend to provide completely custom, not native looking UIs, and therefore using cross platform toolkits for them only makes more sense.
Oh, yea. And Mac users are oh-so-great majority of desktop users... Please. I have nothing against Macs and when I'm rich enough I might even buy one, but I won't try to force the whole world to support my niche OS then. Or niche aesthetics for that matter.
Linux doesn't dictate a native API for GUI. It de facto dictates the display server protocol though (currently being X11 and Wayland as the next generation). So any API would be built with that in mind. That said, most widely used APIs are Qt and GTK+.
Ever noticed how Linux appspace tends to be a horrible mishmash of different GUI styles? That's why Mac users are nazis when it comes to obeying the Apple Human Interface Guidelines - the alternative is every developer does whatever he thinks looks good, and there's no consistency to your desktop. OS and UI consistency is a problem if not done well.
You have less of an excuse on the Mac, which has literally the best GUI API in Cocoa that anyone has ever invented.