I have often wondered how Apple uses MacOS to develop MacOS. How restricted are they from using third party apps? Why does it often feel that Apple is unable to fix problems that feel obvious to other developers. Today’s random thought is regarding status bar apps.
Surveying My Usage
In most MacOS screenshots, it seems like there are only a few default status bar icons: volume, wifi, date. For many users, they likely never have more than a few apps open, and those few stay open in the dock. Many developers are not like many users. We often have a large number of development tools that tend to be running all the time. If every app stays in the dock, then the dock becomes hard to use. Due to this, many apps have a toggle in their settings to live in the status bar.
Glancing at my status bar, I already see a long list of apps.
- Docker
- Bit Warden
- Quitter
- Magnet
- Alfred
- Home Assistant
- Rescue Time
- Tailscale
- Syncthing
- Wakatime (Wide)
- iStat Menu (Wide)
- Meetingbar (Icon or Wide)
- Fantastical
- 1Password
- Keyboard Switcher
- Personal Focus Tool (Wide)
- Volume
- Wifi
- Control Center
- Date (Wide)
Some of these apps I am working on migrating off of, but for now, that’s a LOT of apps.
A few on my list I marked as wide meaning instead of being just an icon, it’s often an icon and extra information.
For example, Meetingbar will normally be just an icon if nothing is scheduled today, but will show a countdown to the next scheduled meeting. An app like iStat Menu is designed to show information in a condensed way, but still each gauge can take up two or three icons worth.
Why so Many?
Like most things, I assumed it’s the path of least resistence. In other cases, I think marketing teams and apps fight over advertising space in the dock/statusbar. After any big Apple presentation, developers happly look through screenshots to see if their app happens to be one of the lucky few to be featured in a screenshot.
Another more likely real reason, is the tradeoff of App Store and sandboxing. The way it is implemented in MacOS you get two options
- Stay in the app store and be restricted but easy updates
- Step out of the sandbox, be less restricted, but on the hook for updates (and probably update bandwidth)
This is not particually satisfying but ens up being the result of a (seemingly) well manicutred walled garden.
An Ideal Solution
Apple should improve the status bar, and implement show/hide functionality into the OS. Status Bar management apps are always going to be a bit wonky, as they have to reverse engineer what apple is doing to try to manipulate the status bar. It still confuses me to think that Apple (overall) doesn’t know there is a problem. I will also yield that many might know it’s a problem and are unable to get it prioritied.
An alternative
This would have to be outside the App Store, but it seems like there should be a pattern where there is a core app, running on whatever tech (like Syncthings or Tailscale in go with other apps in Rust or Python or anything else), and then a simple, native SwiftUI app to handle start/stop/settings. For several apps I could install directly from homebrew and have them running in the background with no status bar app, but it’s nice having quick access to the settings without dropping into the terminal every time.
Not a very satisfying post, but writing is often how we sort our thoughts and try to understand why things are the way they are.