Time available for deprecating classes and properties

With iOS13, Apple is deprecating bunch of classes and properties. Specifically for UIWebVIew Apple has called out that “Apple will stop accepting submissions of apps that use UIWebView”. I am replacing that from the codebase.


My codebase is also using the other classes and properties as below; Apple has not called out specific ‘stop accepting the submissions’ warning on any of those. I am looking to know if anyone has heard when/if Apple will stop accepting the submission on these.

While it’s ideal to replace all below as well, team does not have bandwidth to update all below at this time; I want to figure out how much time is available at hand. Any insights will be great.



  1. UIActionSheet
  2. UIActionSheetDelegate
  3. UIWebViewDelegate and classes which implement this delegate
  4. initWithBase64Encoding
  5. MPMoviePlayerViewController
  6. MPMoviePlayerPlaybackDidFinishNotification
  7. interfaceOrientation
  8. CC_MD5
  9. statusBarHidden
  10. keyWindow
  11. openURL
  12. connectionWithRequest
  13. stringByReplacingPercentEscapesUsingEncoding
  14. CFURLCreateStringByAddingPercentEscapes
  15. isStatusBarHidden subscriberCellularProvider
  16. willAnimateRotationToInterfaceOrientation


Thanks

Replies

Apple has not announced a specific timeline for these, and in the absence of such an announcement I can only offer some basic guidelines:

  • Some APIs are deprecated because the underlying concept is deprecated. For example, MD5 is deeply insecure and you shouldn’t be using it in any modern crypto code. However, there are existing protocols and file formats that use MD5 and keeping

    CC_MD5
    running is pretty easy, so I expect it’ll stay around for a while.
  • Some APIs are so popular that removing them is very unlikely.

    NSURLConnection
    is a great example; it’s still used by a bazillion apps. It’s hard to remove APIs like this, but what you will find is that the API might not show up on new platforms or new architectures. For example,
    NSURLConnection
    is not available on watchOS and, to reach back into the history of the Mac, QuickDraw was never made available to 64-bit code.

    In the specific example of

    NSURLConnection
    , however, the replacement API,
    NSURLSession
    , is much nicer, and so you should probably just make the switch anyway.
  • Some APIs are deprecated because this only make sense in a specific architecture. For example, anything to do with interface orientation make no sense in the modern iOS landscape, where your app must be able to handle a wide variety of size classes.

Looking through your list, I see a number of entries where the way forward is obvious. For example, it’s trivial to fix items 4 and 11. You should make those changes as soon as possible.

I also see some examples where the fix will fall out naturally as part of generally modernising your app. For example, items 7 and 16 will just go away when you support size classes properly. That’s not a trivial thing to do, so you should schedule it part of your app’s general modernisation efforts.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"