Honestly, I can’t even name single such change for iOS. At worse it is adding interface implementation.
About objective c and Xcode. Just lol. I love being able to debug by pressing single button and putting breakpoint. Android studio, being abominably ugly and slow, and killing battery like in 1 hour, still struggles to do that for native code.
Also, what is wrong with Objective C?
And, IMO, iOS/macOS/Cocoa/Xcode is best out there. And most importantly - most stable. Nice boutique experience, nice API, good documentation, everything is integrated and working.
Other platforms are even worse. Way worse. I am also doing Switch, KaiOS, Xbox, PS3/4, did Symbian and like dozen more obscure ones.
All these rants about XCode/iOS/UIKit/ObjC somehow being a terrible environment to develop for are presuming there is something significantly better out there. There isn't, it seems. You will find developers bitching about literally any development platform out there (except maybe Haskell when you are on HN ;-)
My personal experience is limited to C++/ObjC/Java/Python on Linux/macOS/iOS, and I can only agree that ObjC on Apple platforms is by far the easiest and most productive environment for me. I've only dabbled in Swift a tiny bit so far, but my feeling is that it's also a lot less hostile than C++. In terms of toolkits, Cocoa/UIKit is at least as good as Qt, and much better then e.g. GTK or the abominations you have to deal with if you develop Java applications. Don't know about Windows platforms but considering the endless list of technologies and frameworks that are supposed to supersede whatever came before it, it's likely not much better over there.
I have to restart XCode at least once an hour to get all my breakpoints back and several times a day if it crashes for no apparent reason and boots up with the project missing, empty or missing files. Fortunately I don't do a lot of app development any more but some low level C libs don't compile themselves (no: not possible to do this in any other language).
Stable is not what I use to describe XCode. Bloated with "do it the apple way" yes but not stable.
I can give you one. A few years back an important interface was arbitrarily renamed in the CoreBluetooth stack. I would look it up, but I’m on mobile and laying in bed. Ask tomorrow and I’ll find it.
anyway, I was overseeing a half-dozen BT apps for a hardware company at the time. Was a real pain to go through all those projects and #ifdef the interface name for the iOS version. Very odd change since I’ve never seen Apple do anything like that before either.
They’ve changed Bluetooth chipsets a number of times over the years and each one has its own behaviors which makes writing one single BLE communication library that works for all versions very difficult. For instance, in the latest chipset, if you try to increase throughput by using a mixture of ble characteristic writes with and without response, you can very easily end up in a deadlock situation. It appears the hardware buffer just drops ble packets including those with response if full (which appears to hold 5 packets in the latest 2019 MacBook Pro). Dropping without response packets is fine since they’re expected to be unreliable (and you can build a reliable protocol on top) but they drop the write with response packet which the firmware blocks forever on (you can see this pretty clearly when using a ble packet logger). There’s no timeout and all subsequent packets are queued and never sent. Reliable writes should never be dropped!
Every new MacOS/iOS release is a worrying event. Testing the betas which are super unstable increases the tension because you never know if they’ll fix certain breaking changes. Up until the latest beta, our app did not work on iOS or MacOS until they rolled back some ATS hardening because they didn’t like the certificate pinning style we did of manually evaluating trust (which worked countless versions back).
It's not horrible, but UINavigationController is quite infamous for changing internally with each release and behaving strangely with apps until you utter the right incantation to make it work right.
Airplay. Airplay has had several significant behavioural changes over the past five years, some of which still aren't even documented.
Airplay 2 wasn't so much a functionality release so much as throwing out a lot of technical debt.