What makes an app feel “right” on the Mac?

On Mastodon recently, I wrote:

As I play around with more code editors: Zed is pretty neat, although it pushes “AI code assist” to a mildly annoying degree—and despite technically being a native app, it’s no more Mac-like than Neovim is.

I got an interesting response from Fred McCann:

What do we even consider to be a native Mac app? Cocoa/AppKit? SwiftUI? Catalyst/UIKit? Apple ships apps that don’t feel like Mac apps. I guess I’m already accustomed to dev tools being weird and cross-platform.

So I’ve been thinking about that.

The UI toolkits are obvious answers, but I’m not sure that they’re completely satisfying. For instance, I love MarsEdit in theory—enough that I bought version 4 and the upgrade to version 5—but in practice, it’s never really stuck for me. Granted, in no small part that’s because I keep doing things like redesign my website using Zola, a static site generator that MarsEdit doesn’t work with. But even back when I was using Tumblr and, later, Micro.blog, it turned out that being a Mac-assed Mac app wasn’t enough for me—the aesthetics mattered. I could never make MarsEdit look as good to my eyes, be as pleasing a long-form writing environment, as I could iA Writer, Ulysses, or my old stalwart, BBEdit.

What’s startling to me, though, is that another writing environment I’ve come to really like is the one I’m using now: Obsidian. Which is not, in any sense, native.

So it’s possible that the right question—at least for me—isn’t “is this app using a native UI toolkit,” it’s “is this app a good Mac citizen.” In other words, does it embrace long-standing Mac conventions?

If we hold things to this list, programs like Nova, MarsEdit, and Apple Pages—canonical Mac-assed Mac apps—all do unsurprisingly smashingly. But Obsidian, the Electron-based program I’m writing in right now, does shockingly well, too. Microsoft’s Visual Studio Code doesn’t do quite as well (most notably, it opens its settings “window” as an editor tab), but it does better than Sublime Text (which opens a text file for settings), and much better than the banana crazypants menu and icon design of the cross-platform e-book management program Calibre.

On the flip side, being 100% native is no guarantee. The long-running story plotting app Dramatica Story Expert was native, yet such a poor Mac citizen that it not only violated several of those bullet points for decades, its fonts somehow, incredibly, never rendered at retina resolution. And modern apps written using Apple’s own UIKit-based Catalyst frequently break the Services menu or text fields or both. Also, there’s the insanity of the new Settings app on the Mac, which replaces checkboxes with toggle switches, hides functionality behind the circled-“i” icon that traditionally means “information”, and groups preferences less by well-defined category than by, I don’t know, astrological signs or something. Don’t worry, though! The search function is (checks notes) absolute bollocks.

What about web apps, you might ask? I’ve been thinking about Federico Viticci’s recent post about the iPad’s “Sweet Solution” with respect to “feel”:

In working with my iPad Pro over the past few months, I’ve realized something that might have seemed absurd just a few years ago: some of the best apps I’m using – the ones with truly desktop-class layouts and experiences – aren’t native iPad apps. They’re web apps.

This frustrates me because he makes a good case in that article—and for me, at least, that’s a problem. While it’s possible to make apps that are relatively good Mac and iOS/iPadOS citizens using web technologies, that’s not the same thing as making a web app, an application that runs entirely in the context of a web page. I’m not against web apps—Google Maps and Google Mail are both canonical examples of good ones (setting aside for the moment one’s feelings about Google as a political/corporate entity). But at least for me, document-based web apps are usually a bridge too far. Unless multi-user collaboration is essential, give me Apple Pages and Numbers over Google Docs and Sheets any day and twice on Tuesday.

So, I’m not sure where this ultimately leaves me. I’m likely to keep using Obsidian and keep failing to use MarsEdit. I’m likely to keep rooting for Panic Nova over Visual Studio Code (I’m using Nova to update the website, and run preview and deployment tasks). Yet I’d take Code over Sublime Text—although I might just take a well-configured NeoVim over either. It’s not like it looks any more out of place on the Mac, and hey, you can’t kvetch about it having incomplete Vim emulation.

Back to Articles


To support my writing, throw me a tip on Ko-fi.com!