← Back to context

Comment by sghiassy

5 days ago

Tried it out, still doesn’t feel “native”

- cant drag a file to the dock icon to open it

- closing the window, quits the app

Didn’t test much, but I wish the team the best of luck! It’s a cool project

> closing the window, quits the app

I've always hated this about macOS. And my main laptop is a macBook Air M3 15. The majority of my friends that use macOS have no idea how to quit an app. Nearly all think closing all the windows quits it. A lot of issues with a lot of apps can be fixed by quitting them and opening them up again. I help a ton of theater techs at a local improv theater. I finally gave up with most of them and told them to just reboot as a first step to fixing issues before continuing other troubleshooting steps.

I've been using Notepad Next, it supports leaving all your tabs open when you close the window which is the main feature I need. But I do miss the plugins.

As someone who is currently building a native macOS application (cross-platform actually), but haven't used macOS as my "main OS" for more than a decade, what's the most important things to make desktop applications "feel native" on macOS?

  • The most important thing is probably to use native UI controls, either AppKit or SwiftUI, rather than Qt or other frameworks, even those that espouse the use of native controls. That will get you a lot of things for free, generally.

    Don't install invasive "helpers" or login items in weird locations; don't ask for huge amounts of system permissions without an appropriate introductory flow for your application, explaining what it needs to do before trying to install or get permission for something.

    Bundle your dependencies appropriately; don't go fetch weird stuff post-install, the application should be designed so that everything is already there in the bundle.

    Put application data in the idiomatic locations; ~/Library/Application Support, ~/Library/Preferences, etc.

    Carefully consider what keyboard shortcuts your application uses; if you use the Escape key for something, or modifier keys, make sure it does something that makes sense on the platform and doesn't conflict with other shortcuts.

    Don't bundle Chromium.

    Generally: Respect the user as much as possible. Things should "just work." If there's a situation where it doesn't or something feels "odd", you should do whatever you reasonably can to fix that.

    • That first part is a no-go, as the top concern for me is to have consistent UI across three platforms, so it won't look native, and that's a conscious choice, even with the tradeoffs.

      It's a native cross-platform application, fully compiled, just one binary with a sidebar archive, so Chrome, post-install fetches and other similarly "weird" desktop experiences are already avoided :)

      Thanks a lot for the extensive description of your expectations in general though, it's very helpful and I'll put it to good use!

  • Use the native text objects --- in particular, this will get you emacs style editing keyboard shortcuts

    Support drag-drop

    Support Services --- bonus points for implementing core functionality as a Service and making it available thus