Apple, the multi-tribillion dollar company, has some terrible oversights in their software.
Here I have a small collection of some of these oversights that would be trivial to fix, but year after year don't get fixed.
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.
But these are poweruser features you might add. You can't expect the multi-tribillion company to expose such functionality only developers and crazy people care about.
Okay then, what about when using the new window management feature with the shortcuts, the window sometimes breaks and thinks that the screen has been moved 50% to the left making you unable to properly interact or position the window. You have to kill the application and restart it again to fix the issue.
Or what about the time to leave (TTL) notifications in calendar which is supposed to respect your mode of travel set in maps. Except, until recently it would only respect it if you drive. Now it is supposed to be fixed, and does indeed respect your preference if it's walking or public transport, but not if you prefer to bike. Then it defaults back to driving. Because no-one could ever want to use a bike as their primary mode of transport.
You also can't have multiple media outputs on iOS. You can sometimes trick the system to play two different medias using airplay as one of the outputs, but it's so inconsistent that I believe it's a bug.
Maybe you think that the iOS platform is supposed to be simple, and that these advanced features shouldn't be available. I would like to disagree. You should absolutely be able to independently control different outputs. And it particularly becomes a problem when trying to do voice calls.
You are not able to separately select your input and output device, so if you're using headphones as the output device, you need to use its microphone as the input device. This wouldn't be a big problem if the Airpods that Apple makes had even a somewhat useful microphone, but it's so unusable that everyone I have ever called with them tells me they can't hear me at all when using the Airpods.
So either people can't hear me, or I need to hold the phone to my ear to hear them.
But oh it doesn’t stop there. One of the most annoying yet persistent bugs on iPadOS is that the keyboard becomes small when the pen is used. That in itself is fine. I‘m not sure why anyone would want that, but okay. You can also change the size of the keyboard by pinching or squeezing in normal mode. But when the pen is activated the squeeze gesture is disabled. Annoying, but okay, I can just put the pen back, and it should return, right? Right? No! Often it gets stuck in the small mode which is nearly useless at least compared to the big mode where you can touch type on the large versions. So how do you get it back? I have no clue. Sometimes, it returns quickly, but other times it can take hours for it to return to the normal keyboard. This makes the iPad completely unreliable for digital text input even though it should be fine at least. And don’t get me started on the unreliability and unpredictability of how physical input devices work.
Okay enough about input devices. Let’s talk about iMessage. Why does this app used by it seems everyone in the US not have an option to archive chats? This feature is available on literally every other messaging app, and is essential for me to keep track of which conversations that are active, and which have finished. But I guess it’s not bad, and is just another reason to use Signal.
But that’s just one built in app. Surely other apps are good. The Apple Notes app when opening the app with the double tap with the pencil on the lock screen, then the app open, but often starts flickering the sidebar for several seconds before closing the note requiring authentication because it wants to open other notes. This is a problem because I often use the quick open as scrap paper to sketch something I’m trying to explain, but the workflow becomes unusable when it takes several seconds before it’s ready, and when it opens random private notes, I cannot trust that I don’t accidentally leak information. But once again this is just the start of our troubles. In iOS 18, they introduced math notes which is enabled by default on every new note with no way to globally disable it. Math notes are neat if you’re doing simple math, but if you’re writing anything just a little beyond early high school, it starts throwing syntax errors everywhere which are very distracting so I have to disabled it manually for every new note. And of course, disabling math notes requires authentication, so I have to unlock the iPad showing all the private notes as well just to get rid of the syntax errors.
Another frustrating thing is for apps such as banking apps where you want an extra layer of security, so have an app code to unlock the app. Many of these apps also let you use FaceID. Fine, it’s really good to have an extra layer of security, snd being able to use a different password for sensitive apps compared to the one used to unlock your phone. The problem is that if you enable FaceID, and the authentication fails, it falls back to your phone password and not the app password. This completely neglects the extra security provided by having a separate app password. Now, it only helps in the situation that someone steals your phone AND performs the attack before the phone locks, and if they managed to get your lock screen password, then you’re out of luck. There are very things limitations on the kinds of attacks they can do before you have the chance to disable the phone. But if the fallback was the app password, you could secure the most sensitive apps with a different password making the attacks much more limited. But as it stands now, either you can have the convenience of FaceID, and the added security of not having to enter the password often, or you can have security against someone snatching your phone out of your hand after having lured your password.
I would like to see how the engineering culture is at Apple. How it’s possible to miss such obvious bugs, and how those bugs get to be deprioritized over whatever they’re doing now? If Apple’s brand is that it just works, I think they’re moving the wrong direction, and I have to imagine that the neglecting of bugs one day catches up with them.