开发与 ITReddit 原帖

What makes a macos app feel truly native and polished?

完整上下文原始内容 · Reddit

hello guys, I’m a backend software engineer, so most of my experience is with api , infrastructure, databases, and server-side architecture. Recently I started building my first macos app and I’m realizing that making something work is very different from making it feel native, polished, and pleasant to use on macos I’d love to learn from people who use or build Mac apps regularly ! Thanks, folks !

01需求标签
开发与 IT其他桌面应用不适用

已收集讨论

25 条已收集

25条已收集97条 Reddit 标称评论
u/KayLikesWords

I've been learning Mac development the last few months after a decade in other ecosystems and have done a bunch of deep dives into exactly this. As far as I can tell, there are a few pretty simple guidelines you can follow that will massively increase the perceived usability of your app. Use Swift + SwiftUI. There is nothing in this space that's as good as the frameworks Apple provide for it. At this point, I'm pretty certain that there is nothing in any space that's as good. If you use the Apple tools to make your Apple apps, they are going to have the Apple feel, no matter how bad you are at UI. It's also relatively difficult to fuck up so much that your app will be inperformant this way. The resource footprint comparison between Swift and something like Electron is genuinely comical. Look at what Apple does in their first party software and just copy it. Left side menus, right side inspectors, liquid glass navigation bar at the top, content in the middle. I think Xcode is the worst IDE I have ever used, but it sure is pretty and simple. Use colour sparingly, have consistent iconography. Really think about what you need to have on-screen vs what can be hidden away. Follow the recommended HCI guidelines. You can have massively complicated software, but abstract the complexity away from new users. Everything should be a few clicks away at most. Provide shortcuts for finding things if there are a lot of options. If you add some kind of workflow to the app have think about whether Steve Jobs would like it or not lol Post screenshots in Apple dev forums and ask for feedback about whether it looks and feels like something that is Mac native. Apple users are some of the more pernickety people on earth -- if they don't like it they will tell you exactly why.

u/deepzz0

Beyond "use SwiftUI, not Electron" (true, but already covered): the native feel that's hardest to fake is behaviour: - never block the main thread (one 100ms stall reads as "cheap app") - follow system settings live: dark mode, Reduce Motion, accent colour, Dynamic Type - state restoration — quit and relaunch should put everything back exactly The look gets you halfway; this is the half everyone forgets.

u/Jebus-Xmas

Being fully native and adhering to the Apple design principles, even if Apple somehow diverges.

u/Murky-Ad-4707

Apple HIG for sure. But on top of that, it’s the integrations with OS imo. As much as possible; Spotlight, share etc. I love apps that gets out of the ways of users behavior..

u/olegs_account

System apps are a good guide for the look and behavior Use a native framework: SwiftUI is the modern approach for building UI. It has its limitations when it comes to precise adjustments and performance. UIKit predates SwiftUI and is still supported. Both UIKit and SwiftUI allow you to make an app that also runs on iOS / iPadOS (look up Mac Catalyst). AppKit gives you the most access to macOS related APIs. There are ways to access it even when using SwiftUI / UIKit. I personally stick to UIKit + AppKit. This way I can make a native looking app that runs on Mac, iPhone, and iPad. Also no limits when it comes to complex and performance dependent animations.

u/bogdallica

There's a more principled answer here that ties back to Apple's design guidelines. For me, it's largely about keeping cumulative layout shift close to zero (how much the UI jumps around as data loads) and respecting the system's Reduce Motion setting. If an app gets either of those wrong, I wouldn't consider it polished or feel that it's truly native.

u/jmstach

The HIG is your starting point. If you need to bounce anything off an old, jaded Product Designer of countless apps large and small, I’m happy to give pointers.

u/Wreit

Same, hate electron apps, it annoys me when I resize app window and it gets white for a sec till app react to size change … I’m using rather AvaloniaUI with C# .. I don’t like those JS bullshits also, created sunderapp.io in avalonia IMO it’s much much better than electron ✌️

u/simonlouschueler

I wrote my thesis on basically that topic. It’s a longer read, but maybe it helps. :) https://thesis.simonlou.com

u/rjn2-8楼主回复

Wooow thanks for that gem !!! Incredible work honestly

u/badcommandhq

So the apple guidelines are really useful but I think it’s also important to understand the various components of macOS26 and how it will look/feel for the user and if those components are even good enough for what you need. As an example, in Telescopo Markdown Studio, around version 5 I introduced native macOS popovers which is essentially a natively drawn scrollable list which you can see used across the operating system. You can even add a subtle arrow which can dynamically open the popover above or below while keeping the arrow pointed. The issue was that it looked/felt out of place and not appropriate. In version 7, we fully rebuilt these into our own new components that apply subtle liquid glass effects but are much more flexible and consistent. You need UX that is inspired by the macOS built in apps and components but you don’t always need to use them exactly. It’s that splash of uniqueness while adhering to human interface design principles that make an app truly feel “native”.

u/rjn2-8楼主回复

Thanks a lot! macOS 27 will not change a lot of things I hope

u/Professional_Wait980

Clean UI, it shows the author took their time with the app

u/retsotrembla

For your document apps, use the standard proxy icon in the title bar of the document window so people can use it by dragging it: to the Terminal to get the path, to an Open or Save dialog, or control-clicking on it to get the path dropdown menu.

u/MrMegira

Besides what's been said, good AppleScript support is important. It expands user capabilities and improves the app's utility.