Building Preference Pane or Standalone App

I'm updating a very old and abandoned Obj-C app and rewriting it in Swift.

At its most fundamental level, this update is to get at least the original functionality included in my new app, but I do have plans for more features that the original didn't offer. Originally the app was configured by just a System Preferences Preference Pane and had no GUI of its own. I'm curious if I should stick to that methodology or if I should build an actual app.

This is an app that will be running as a service in the background and will not need any UI to interact with beyond the configuration of its settings. What are the current best practices? Should I rewrite it as a more modern Preference Pane plug-in or should I build it more as maybe a menubar app that then allows me to access its preferences that way (as well as maybe turning the app as a whole on and off which the original version did not allow)?

Replies

This is an app that will be running as a service in the background

In a particular user context? Or do you want it to run as a daemon, that is, in the global context. To decide between the two, ask:

  • What will this service do if no GUI user is logged in?

  • And what will it do if multiple GUI users are logged in?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

  • It does require a GUI user to be logged in and for that user to interact with the computer to trigger actions run via the app. But the app is global in that it works no matter what app you're in, as long as my app is running, it's monitoring the user's actions waiting to perform certain tasks.

    It's not a window management tool like Rectangle or Magnet, but it's kind of the same idea that no matter what app you're using, you can trigger actions within those apps by key combination or dragging a window to a certain area.

Add a Comment