The macOS team still does a great job at making features that demo well. For the past few years, everything below the surface layer is becoming increasingly flakey.
- I upgraded to 10.13, and my stock graphics cards would slow, freeze, and then crash window server, logging me out. I spent the money to buy a hot new GPU from Apple's latest recommendation list, and it no longer crashes (though I'm having trouble getting both of my Apple displays to work, since apparently most of the "DisplayPort to dual-link DVI" adapters in the world are actually single-link).
Other issues I've run into recently with new or revamped features:
- Dark mode works great sometimes, and other times it's an unreadable mess.
- Xcode 10's new text editor broke control-T, which has worked correctly in every text field since the earliest days of Mac OS X.
- The new security around contacts/calendars broke my app. It doesn't work like it used to, it doesn't work like the documentation says it should, and it doesn't log anything useful to help diagnose the problem.
- The recent documentation, overall, is a big step down. developer.apple.com used to have long-form articles describing how things were built. Now, it's mostly just HTML versions of header files, and half the descriptions are "No overview available."
- The new WKWebView teases improved performance (and not being deprecated, like WebView), but removed major features I was using, or planned to.
- Dragging toolbar items in Safari 12 seems completely broken.
- You can set almost any accessibility option via script, except menubar transparency, for no apparent reason.
It was no coincidence that Macs used to be simple. "Simplicity is prerequisite for reliability"! When you've got only one color scheme, you can make it 'just work' everywhere. Once you've got more than one color scheme, now you have to go check everything to make sure this doesn't happen: https://twitter.com/KenHatesSoftwar/status/11059512173713530... (which depends on the dark-mode setting, the reduce-contrast setting, the desktop wallpaper setting, ...)
Multiply this by every permutation of settings. I don't think it's feasible any more for single-developer Mac shops. There just aren't enough hours in the day to make everything work well. Even Apple is struggling.
My next project isn't another Mac app. It's a web app in Clojure. CSS is still terrible to work with, but (with grid and flex) it's slightly less awful than it used to be, and much more consistent. And Clojure is infinitely more pleasant than Swift.