Thread with 2 posts

jump to expanded post
Jordan , @jrose@belkadan.com
(open profile)

Apple secret: there are two ways to allow new APIs to backwards-deploy. One is copying the implementation into your app. The other is that the API already existed as SPI (“system programming interface”), and was being used by Apple at the time.

This might sound unfair—if Apple got to use this in iOS 13, why not external developers? The answer is that me saying “Apple” misrepresents the group that’s allowed to use SPIs: only apps that are shipped with the OS get to use them. That way, if the shape of the API needs to change, or if it was a bad idea altogether, that can happen in the next OS release without any weird compatibility problems. (Occasionally one of the other apps, like Pages or Final Cut, might use SPI too…and then the teams have to coordinate how to support older and newer versions for a bit. Nobody likes that.)

Put this way, it doesn’t sound so unreasonable: Apple is beta-testing their own APIs internally before releasing them, and sometimes that test period goes on longer than a single release. (Deploying back to iOS 13 is a long one though. I suspect someone wasn’t sure this one was pulling its weight until recently, and/or had a lot on their plate and only just got around to evaluating this for release. UIKit’s a busy team every year!)

(TJ knows all this already, but others might not!) https://soc.mod-12.com/@griotspeak/110498288428600165

Open remote post (opens in a new window)