iOS 7 preview: Sprite Kit and UIKit dynamics promise easier games, game-like apps
I've written a lot already about how Apple is changing the interface game by making iOS 7 not only objectified but gamified. It almost feels like you play it as much as you use it. The original iPhone's interface required OpenGL support to such a level that it eventually birthed a mobile gaming empire. iOS 7's physics and particle engine -- rumored to have been built by a first-class gaming engineer who's work you've likely enjoyed, a lot -- seems poised to take all of this not only to the next level, but to the next generation. The reason for that is as simple as it is spectacular -- Apple's taken everything they used to make iOS 7's engine and bundled it together into not only a new set of UIKit dynamics for app developers, and Sprite Kit for game developers.
Here's how the public-facing portion of Apple's iOS developer portal describes them:
UIKit allows you to incorporate realistic motion and transitions with new APIs that enable your user interface to respond to every touch and swipe by following the behaviors and physical constraints you define.
Create new immersive experiences using the latest game technologies in iOS 7. Develop high-performance 2D games with the powerful new Sprite Kit framework, which combines everything you need to animate sprites, simulate physics and create beautiful particle systems all in one easy-to-use set of APIs.
The public side of the Mac developer portal has more on Sprite Kit:
Create high-performing 2D games with the powerful new Sprite Kit framework, which allows you to control sprite attributes such as position, size, rotation, gravity, and mass. Sprite Kit’s OpenGL-based renderer efficiently animates 2D scenes. Built-in support for physics makes animations look real, and particle systems create essential game effects such as fire, explosions, and smoke.
As does this bit from Graphics and Animation:
Sprite Kit is a powerful graphics framework for 2D games such as side-scrolling shooters, puzzle games, and platformers. A flexible API lets developers control sprite attributes such as position, size, rotation, gravity, and mass. Sprite Kit’s OpenGL-based renderer efficiently animates 2D scenes. Built-in support for physics makes animations look real, and particle systems create essential game effects such as fire, explosions, and smoke. To assist SpriteKit-based game development, Xcode supports texture atlas creation and includes a particle creator.
It's easy to see what this means for game developers, or people who want to be game developers. They get a lot of really good stuff that used to have to be custom made, or brought in independently from something like Box2D , and they get it "for free". Existing projects can throw away code and let Sprite Kit take its place, and new developers can just include it from the get go, adding effects they might not have been able to do on their own.
The new, more dynamic UIKit frameworks sound even more interesting. Making high quality interactions in iOS 6 and older versions sounded tough and tedious, animating more than modeling, and building even a few types really well was really difficult. iOS 7 and technology like what Apple showed off at the WWDC 2013 Keynote looks like it removes that burden. Designers and developers can dream up the perfect interactions for their apps, and iOS 7 will help make it a reality.
Neither the new UIKit dynamics or Sprite Kit are user-facing feature. Neither was a 10 tentpoles Apple's senior vice-president of software, Craig Federighi, spent any time on during the WWDC 2013 keynote. However, he did show off every delightful ricochet in Notification Center, every bounce in Messages, every flip, every spin, every zoom, every parallax, every pan, and every bit of interactive awesomeness that the new physics engine enables.
From Core Animation, which handles animation, to SceneKit for 3D scene manipulation, to UIKit dynamics and Sprite Kit which allow 2D physical interactivity, Apple is continuing to provide amazing frameworks that'll allow for even more amazing apps down the road. 3 months post-iOS 7 launch, 6 month, 1 year... They could fundamentally change the nature of the apps we use every day. It's something that could be transformative. Again.
The new UIKit and Sprite Kit are both available to developers now, and the rest of us will get our first look at the results of it this fall when Apple ships iOS 7 and OS X Mavericks. Check out the resources below for more, and let me know -- are you looking forward to getting App Store apps that have the physics and particle effects of iOS 7?
Update: Corrected to remove the conflation between UIKit dynamics, which will be used for standard app elements, and Sprite Kit, which focuses on games (though both are apparently based on the same underlying physics).