Comment by skrrtww
4 days ago
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!