Apple Announces New iOS 8 SDK and Developer Tools
At its 2014 Worldwide Developer Conference, Apple announced its new mobile operating system, iOS 8, alongside new SDKs and development tools. New Apple software includes over 4000 new APIs, including all new frameworks such as HealthKit, HomeKit, and CloudKit, and enhancements to the platform gaming capabilities.
The biggest surprise at WWDC, according to The Verge, was Swift, which InfoQ has already reported on recently. Swift is whole new language that aims at being highly expressive through the support of closures, multiple return values, generics, and functional programming patterns such as map and filter. Swift also support modern programming language concepts like type inference, while retaining Objective C named parameters and introducing namespaces. Swift code can co-exist along Objective C in the same project to make it easy to adopt. Detailed information can be found in "The Swift Programming Language", which is freely available as an ebook.
HealthKit is a new framework allowing access to centralized data about a user's health. It will allow fitness apps to share their data with the new Health app included with iOS 8 and with each other. The API shall allow for user-configurable access to health data, such as allowing a nutrition app to tell fitness apps about calories consumption each day.
HomeKit is a new framework for communicating with and controlling connected devices in a user’s home. Apps can enable users to discover devices in their home and configure them, or you can create actions to control those devices. Users can group actions together and trigger them using Siri. HomeKit also defines a HomeKit Accessory protocol which can be supported by accessories that work with home configuration or home automation apps.
CloudKit allows apps to sign in iCloud using a user's Apple ID without sharing any personal information. According to TechCrunch, not allowing for this "has been a huge pain point for developers, forcing many of them to turn to third-party solutions like Microsoft Azure, Google Cloud Platform or Amazon Web Services." Adding "support for features like CloudKit authentication, search, and notification" should become as easy as a drop in feature.
SpriteKit was introduced with iOS 7 to enable developers to create 2D games. In iOS 8, Apple has added several enhancements that will help in-game characters move more naturally and make it easier for developers to add force fields, detect collisions, and generate new lighting effects in their games.
SceneKit is a new framework for iOS 8 that enables developers to render game scenes in 3D and is said to be designed for casual 3D gaming. SceneKit incorporates a physics engine, a particle generator, and easy ways to script the actions of 3D objects. It’s also completely integrated with SpriteKit, so developers can include SpriteKit assets in 3D games.
Built for developers who create highly immersive console games, Metal aims at allowing them to squeeze maximum performance from the A7 chip. As Touch Arcade reports, "the disadvantage iOS hardware has always had over dedicated gaming consoles is a total lack of direct access to the hardware. Everything you do on iOS has to go through OpenGL". Thanks to Metal, says Touch Arcade, the OpenGL overhead should be reduced "to the point of being almost a non-issue" while Apple boasts a 10x boost in rendering performance. Support for Metal has been announced by several game engine makers, such as Crytek, Unity, and Epic Games.
Touch ID API
Touch ID is a fingerprint recognition feature currently only available on the iPhone 5S. With iOS 8, for the first time, developers will have the option of using Touch ID to sign in to third-party apps without entering a password.
In iOS 8, developers can enable their photo apps to edit photos directly in the Camera Roll without having to import them first.
In iOS 8, third-party camera apps can have precise control over exposure, focus, and white balance in addition to the controls they already have.
Alongside iOS 8, Apple also introduced Xcode 6 beta, a new version of its flagship development environment that will support all of iOS 8 new features, including Swift. Xcode 6 also introduces several improvements:
- 3D rendering of each layer in a stack of views to make easier view debugging and find out clipped or overlapping views; inspect layout constraints, etc.
- Performance testing support in the XCTest unit testing framework.
- Live rendering of Swift code inside of Interface Builder canvas to reflect programmatically changes to the app Storyboard.
Apple has made available the iOS 8 SDK beta and Xcode 6 beta for all registered developers that are member of some iOS Developer Program.
The final iOS 8 release is scheduled for this fall as a free update on all compatible iOS devices, according to Apple announcement.