I haven't seen many things removed from OS X, ever. There are some things that never made it to 64-bit, such as QuickDraw, but I fully expect that QuickDraw will be around in 32-bit as long as there is still 32-bit. There's just too much risk and too little reward for Apple in removing deprecated API. I think that deprecation is basically short for "Don't bother filing Radars against this." iOS is an entirely different matter, because of the app store, where Apple can force developers' hands.
There's actually some kind of advantage in using deprecated API on OS X, because Apple isn't making any changes to it, so it's less likely that Apple will unintentionally break it. I've seen plenty of "supported", non-deprecated API that get broken in 10.n updates or even in 10.n.m updates and never get fixed, or get fixed only years later. Deprecated API, on the other hand, tend to be very stable over the course of many years.
This is not to say that I'm encouraging people to adopt deprecated API. But if you're already using it, and it's a pain to rewrite, then I'd focus your developer hours elsewhere. (Again, this is only OS X advice, not iOS.)
-Jeff
On Jun 27, 2013, at 12:34 PM, Chris Adamson < email@hidden> wrote: On Jun 27, 2013, at 1:06 PM, Douglas Scott < email@hidden> wrote: AFAIK, no other parts (or at least significant parts) of CoreAudio are slated for deprecation. Remember that deprecation does not mean your apps cannot use them -- just that new features are going into the new API, not the old.
That's a somewhat softer statement than Apple usually makes about deprecation. The SDK Compatibility Guide says:
Always check to see if you are using deprecated APIs; though still available, deprecated APIs are not guaranteed to be available in the future. The compiler warns you about the presence of deprecated APIs in your code, as described in “Finding Instances of Deprecated API Usage.”
A lot of us who've come from other platforms are impressed by the fact that Apple actually *does* remove deprecated APIs after a while, though it's clear that Apple pays attention to how much pain the removal will cause and waits when it's appropriate/possible to do so (notice that QuickDraw is still hanging around in OS X 10.8, despite being deprecated back in 10.4. Same with Sound Manager, deprecated in 10.5).
Still, I take deprecation a lot more seriously on iOS and OS X than I ever did back in Java, where changing anything major in the platform takes 5-10 years. It's not a bad idea to assume that once something's deprecated on an Apple platform, you have until the next full-point version of the OS to get off of it (so… about a year). I know of only one case where something in iOS was deprecated and killed faster than that.
FWIW, I initially thought the deprecation of AudioSession was a little strange, given that it forces apps to import the Obj-C-based AV Foundation API, but given that it's an iOS-only API and you can't really write an iOS app without Obj-C, it's probably good to eliminate the duplication of effort and have that functionality live in one place.
--Chris
|