App Transport Security
Keeping private data secure on today’s Internet is an ongoing challenge, and with the release of iOS9, Apple is taking even more steps to protect user data. The most important change for developers in iOS9 is the addition of App Transport Security, which attempts to use secure HTTPS communications by default for all Internet connections, instead of standard HTTP. Ideally, all your apps and services should be upgraded to use HTTPS, but, for many iOS9 apps, that is simply not possible. Certain services, such as ad networks, still rely on unsecured HTTP and without modification, if your app tries to connect to an insecure address, it will result in an error. Not only is this possibly inconvenient for your users, it also looks unprofessional for error messages to be displayed inside your apps.
If standard HTTP connections are absolutely necessary for your app to function, you can avoid problems by adding a few lines to the app’s Info.plist file to whitelist the affected domains, or you can deactivate App Transport Security completely using the NSAllowsArbitraryLoads key.
As the finite supply of IPv4 addresses dwindles, it is becoming increasingly important to add support for the IPv6 protocol to all your iOS9 apps. Beginning in 2016, it will be mandatory for all new apps in the App Store to support IPv6, and those that do not support the protocol will be rejected. To make sure your apps are ready for IPv6, be sure that you use the correct OS networking frameworks, such as NSURLSession, avoid APIs that use IPv4 exclusively, and do not hard-code any IPv4 addresses into any of the URLs in your apps.
With iOS9, you now have the ability to reduce the installed footprint of your iOS9 apps by using to deliver a customized version of your app for a particular device, without including all the extra resources that are required for other devices. Using Xcode and slicing you can export a different version of the app bundle for each type of device, and using bitcode, you can export an intermediate version of your app that can be compiled for a specific device when it is downloaded. With on-demand resources, items like images and sounds can be downloaded as needed, and deleted when they are no longer required or when storage space needs to be freed for more important items.
With iOS9, Apple introduced several new multitasking options for iPads, including Slide Over, Split View and Picture in Picture. Slide Over allows a second app to be briefly opened over the top of another. Split View allows two apps to be opened side by side and used simultaneously, and Picture in Picture overlays a video window onto your current app.
For your apps to work properly in iOS9, they must be targeted to the OS specifically and they must support the new window sizes, using the appropriate Auto Layout and size classes. They must also respond to trait collection and size changes correctly. It is a good idea to test your iOS9 apps in each state and make sure all the elements are displayed correctly. Applications developed in Xcode 7 should already be optimized for the new multitasking modes.
These are just a few of the things you can do to prepare your apps for iOS9. There are many other options available, depending on they type of application. Games can take advantage of the GameplayKit, MetalKit and other optional frameworks to improve game performance, and other apps can use improvements like 3D Touch to enhance app interactions. Implemented properly, the new additions to iOS9 can translate into improved performance and new features that will add significant value to all of your iOS9 apps.