Favorite GUI library?

Chris wendlec at tcd.ie
Tue Apr 24 13:03:47 UTC 2018


On Tuesday, 24 April 2018 at 12:44:59 UTC, Uknown wrote:

>
> I forgot to mention consistency. This is the biggest reason I 
> don't use non native apps. I'm not talking about your app being 
> consistent across operating systems. I'm referring to being 
> consistent with programs on the current system. E.g a native 
> macOS app has a certain way it looks and behaves. I can expect 
> cmd+w to close a window, cmd+q to quit and the the "traffic 
> lights" to be on the top left. Non native apps mess things up, 
> making them harder to use. Keyboard shortcuts _generally_ work, 
> but when they don't they are a pain. Even messing with buttons, 
> making them smaller, or placing them weirdly, or using custom 
> tabs and menus makes it harder to work with a program.
> For e.g. look at the divide between "modern" and "native" apps 
> on Windows. Even on linux, back in the day, GTK apps looked out 
> of place on QT systems and vice versa.

Well, this is only an issue if you want to provide an OS specific 
LAF for users who expect it and want it this way (Mac users, 
Windows users). So if you design an image or text editor for 
desktop, you would probably want to go native. However, loads of 
apps these days are meant for tablets, phones and the web. If, 
for example, I were to develop an app for language learning, I'd 
definitely not go native, but base the UI on HTML+CSS+JS. In that 
way, you can re-use it for smart phones and the login section of 
the user account. It'd be madness not to. A lot of apps have 
their own unique look these days (just as websites do), and users 
know (and even expect) that. If for some reason you have to 
interact with the OS's services on say an iPhone, you can always 
write a thin native wrapper in Objective-C or Swift. But I 
wouldn't base the logic on and around the native framework.

As for the rest, it's all about trade-offs and use cases. I don't 
use web-based programming editors nor would I write one, for the 
reasons you mentioned and because it has a well defined use case, 
i.e. hours of programming on your lap or desktop. For a language 
learning app, a weather app, a converter etc., going native is in 
most cases a bit OTT.


More information about the Digitalmars-d mailing list