I seem to become more involved with native Apple development mostly by modifying open source utilities to be more aligned with my preferences. But oh is it ever frustrating to discover that many times the APIs are just not there.
I recently found a neat little menubar app that will display Apple todos in the menubar, and let you create and check off the todos. Reminders MenuBar. It's on Github and it's really cool.
But I quickly found that it's unable to filter on the flagged property. This is essential for how I plan my day. I don't really respect due dates. Instead, every day I flag some items from a list of potential items that I need or want to do that day. It's very similar to Microsoft's My Day feature. It works very well for me.
So all I had to do was to extend the utility to allow filtering on the isFlagged
property. No problem I thought, I can use the EventKit documentation and the existing code to add an extra filter no big deal.
The todos are represented as EKReminder
s which subclass EKCalendarItem
, so todos are really calendar events. Strange but okay. The problem is that outside completion status, priority, due dates, and calendar (list) membership, the API doesn't expose any other information about the reminders. So I can't access flag status of a todo.
This makes no sense to me. Apple likes to have deep integration between system and third party apps. Shortcuts can access the flag property. The API is there, but it's private unable to be accessed from Swift, but not for a security reason: The flagged property can hardly be seen as a security concern if you can already read the todos, and you can use the private API through Shortcuts.
This makes the otherwise really cool utility, and in fact all third party programs that integrate with the Apple todos, entirely useless to me. For what reason? Would it really be that difficult to expose the full API?
This is not an isolated incident. Stage Manager which is so close to being useful to me if you could just add some keybindings and a few more modifications, but it doesn't expose any public API making it forever just short of useable. AltTab relies on so many private reverse engineered APIs to fix an essential OS feature.
The stubborn arrogance is frustrating. I can only imagine these obvious oversights coming from a lack of care.
So here I scream into the void Apple please fix your APIs hoping the situation will improve next year, and the year after that.