Hacker News new | ask | show | jobs
by gitgud 2504 days ago
Yes, there are benefits to having the OS supply the components; switching themes, familiar design and probably performance gains.

But, the trade off is simply unpredictability. The app is assuming that the OS has all the components it needs, at the correct version etc. Not all OS's have all components you think, which leads to unreliable user interfaces, which may work for small applications with only a few OS dependencies, but as the app grows the reliability decreases...

You're correct in saying the UI should not be the same on every platform (iOS, Android, Windows). But in my opinion the app should encapsulate it's UI and share as little as possible with the host OS.

2 comments

All major OSes have better, faster, more flexible UI components. These were invented for native apps.

If a component is not available, it means it's not appropriate for that platform or not part of the UX guidelines.

That's why you build on top of a layer which ensures the OS has the required components. If you build on top of GTK, you know your application will run on any OS with that GTK version installed. Or if you build on top of Android, you know they will make sure that the button component still works on different versions of the OS.