logoalt Hacker News

GeneralMaximusyesterday at 11:14 AM2 repliesview on HN

Why would you not?

I use Ableton, Figma, and Emacs regularly. I have a decade (or more) of muscle memory around these apps. If they suddenly decided to adopt the look, feel, and conventions of their underlying host platform, I’d be very upset.

If I’m using Emacs, I don’t want to use Cmd+S to save my files on macOS and Ctrl+S on Windows. I’ve already memorized C-x C-s. I don’t want Ableton to adopt whatever new design language Apple or Microsoft is chasing this week. I want to open the app and find the UI controls looking and behaving exactly the same as they’ve looked and behaved since I started using it in 2014. I want to write code, make music, do design. I don’t want to be frustrated because the button for enabling the metronome is 15px to the left on Windows vs. macOS.

Apps that look and feel native only make sense in two cases:

1. The app is tied to the platform. E.g. Logic Pro. It can integrate deeply into macOS and use the native widget set because it will never run on any other platform. Same for Bear, Things, Pixelmator, Omni Group apps, etc.

2. The app is a replaceable, throw-away utility. I call these “fungible apps”. For example, it doesn’t really matter which Mastodon or Bluesky client you use. There are hundreds of them, and they’re not complex enough that the loss of familiarity or muscle memory matters very much. You can use one client on Windows, a different one on macOS, and a third one on Linux, and it’ll be fine. They can all be native to their platforms, or not. The interaction model is simple enough that you can afford to have a different one on every platform.

For apps that really matter—the apps I use to put food on the table—I absolutely want them to look and feel exactly the same on every platform. The app is the OS, the actual OS is just a hardware abstraction layer.

Can Flutter be used to build apps like Figma or Ableton or Emacs? I actually don’t think so. It’s a poor toolkit for building anything that must last for more than 3-5 years. If you care about longevity, there are basically only three options in 2026: Qt, Electron, or roll your own like Zed/Sublime.


Replies

GeneralMaximusyesterday at 2:22 PM

(Adding this as a comment because I'm over my edit window.)

I want to add a third category to the categories that make sense as native apps: apps that are built by the platform vendor (and potentially shipped with the platform).

GNOME apps are built with GTK+, KDE apps are built with Qt, and macOS apps are built with SwiftUI/AppKit. This is how it should be. Microsoft is the only outlier here, shipping apps built with everything from Win32 to React Native to Electron to their own WebView2.

show 1 reply
sgtyesterday at 2:40 PM

For end user apps, I want them to look according to the OS, at least on Apple devices. That's what picky customers. For stuff where design does not matter much, such as enterprise apps that "put food on the table", as you say, I use Flutter and still get a very decent result.

But with sufficient time and effort, proper native iOS/macOS wins every time.