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.

Reply via email to