3 ms·
Ask HN: What subtleties distinguish a native desktop app from cross-platform?
- dapperdrake 2y agoAre cross-platform and native even mutually exclusive? You can have a C89 application that conditionally (#ifdef) compiles differently on MS Windows and Linux. It’s native. And it’s cross-platform.
- jfaulken 2y agoIn this context I took "cross-platform" to mean "Electron."
- armchairhacker 2y agoThere are apps that act native on multiple platforms, like IntelliJ. But those are rare. Most cross-platform apps feel “out of place” on every platform except web, because different platforms have different styles: button sizes, background colors, whether the menu is in the window or top of screen or there is none, etc. Most cross-platform apps are slower and buggier than native UI on every platform, and don’t support accessibility as well, because the native UI has been developed over a long time by a talented group (Apple, Microsoft, the Linux foundation, etc.) whereas most cross-platform implementations are developed in shorter spans. by smaller teams If you want a cross-platform app to feel native, you have to re-implement a lot on each system. You must handle that subtle differences between platforms like menu position, even if you try to make your UI generic like IntelliJ’s*. And the library maintainers must develop adapters from each native control to their cross-platform one, and/or implement many accessibility-adapters, edge-cases, and optimizations. It’s almost certainly easier to write a native UI for every target platform than to write a cross-platform library powerful enough to feel native on every target platform, then handle the look-and-feel differences in your app where necessary. * Actually, that may be IntelliJ’s only difference between platforms, I can’t think of any others OTOH. While their UI is unique IMO it feels “native” on macOS because it’s similar, and macOS is the OS, I use most, so maybe that’s why I feel it’s an exception to the “cross-platform can’t feel native” rule.