What is the Swift SDK for iOS?
The Swift SDK is the completely revamped version of the AirWatch SDK for the iOS platform. It is a refreshed version of the Objective-C SDK and utilizes the Swift 3.1 programming language from Apple (https://developer.apple.com/swift/) along with many other modern technologies.
Why use the Swift SDK?
Aside from utilizing the latest and greatest technology from Apple. The Swift SDK offers several benefits around user experience and technical performance improvements.
- Greatly Reduced App-to-App Flipping – The amount of app-to-app flipping has been reduced significantly as the SDK now leverages a new protocol for app data sharing. (See the Objective-C vs. Swift behavior changes section below for more info)
- Support for Workspace ONE Devices – Swift SDK apps will now also be compatible on devices enrolled through Workspace ONE. (Also requires an upcoming version of the Workspace ONE app)
Architecture for the Future
- In addition to the tangible user experience and performance improvements, there are several major underlying architecture changes made in this new Swift SDK which set the groundwork for future improvements. (Such as bitcode support and adoption of modern package management technologies like Cocoa Pods).
How and when do I get access to the Swift SDK?
The Swift SDK beta (v17.5) is now available in the AirWatch beta portal. Contact your account representative or AirWatch customer support to gain access.
What is the plan for the Obj-C SDK?
The Obj-C version of the iOS SDK will be in maintenance mode and new features / capabilities will be exclusive to the new Swift SDK.
What do I need to do to prepare if I am already using the Obj-C SDK in my app?
First, read the section below about the behavior and interface changes. You will also need to assess your own app’s existing code-base to determine how to integrate a Swift 3.1 library and ensure your Xcode version is a Swift 3.1 compatible version.
Depending on what SDK capabilities are being used, it will also help with the Swift SDK integration if your existing SDK applications have keychain sharing enabled in order to ensure an optimal user experience once the Swift SDK is integrated.
What behavior has changed between Objective-C vs. Swift?
The Swift SDK will introduce a new mechanism using the shared keychain for SDK apps to communicate with other SDK apps on the device. This approach provides benefits from both a security and a user experience perspective.
SDK applications built by the same developer account and are also in the same keychain group or “cluster” will now be able to share an app passcode & SSO session with each other without requiring a flip to the Agent or Container application every time authentication is required. However, applications on the same device built by different keychain groups will not be able to take advantage of this passcode sharing capability. There will still be some scenarios where a flip to the Agent, Container, or Workspace ONE app is required for obtaining the server URL and other setup information but this particular flip should only occur once per cluster of apps.
The diagram below illustrates this new “clustering” behavior. The dotted cluster represents a unique developer account and keychain group. Applications with the same color code represents SDK apps which will share information with each other.
How will Swift SDK and Obj-C SDK applications interact and behave when both are present on a device?
Upon upgrading one app to use the Swift SDK (See State 2 in diagram below), the Obj-C SDK applications will automatically switch to the clustering behavior for passcode and other app data sharing mentioned in the behavior changes section above. Thus, the Objective-C applications will no longer flip to the Agent for passcode authentication nor will it share a passcode with apps which are outside of its own keychain cluster.
Note: Anchor app refers to either Agent, Container, or Workspace ONE.