Core Animation with Bill Dudney
I'm sitting in Bill Dudney's talk called Core Animation on the iPhone: How to Build Animated UI's. All of the animations on the iPhone are done with Core Animation. Bill is going to start by doing a brief intro to Objective C. Objective C is a dynamic object-oriented language. It's C-based and has Smalltalk roots. Objective C is 2 files - one is a Header and one is the Implementation. They are marked with @implementation and @interface. Properties are declared with a @property keyword and a get and set method are created for you.
Layers are nothing more than 2-dimensional layers living in a 3-dimensional space. You don't need to know anything about OpenGL to use Core Animation. All of the complexity is pushed behind the API and everything runs on the video card. This allows you to get really, really good performance. Core animation is actually built into Keynote on OS X and bill is showing some demos right in his presentation.
You can build user interfaces on the iPhone with Views or Layers. The best way is to use a View with Layers and Events. The View listens for Events and do the right thing. There are several methods you can implement when writing a view: touchesBegan
, touchesMoved
and touchesEnded
. These allow you to capture when a person touches the screen and they each take a set of NSSet objects, where one exists for each finger. On the iPhone simulator, you can use the Option + Mouse to simulate two fingers.
Animation in Core Animation is implicit. If you change a value on a layer, the layer is going to animate that property change. They can interpolate floats and integers as well as origin (width and height). If you change colors, it'll fade between the two colors. The default animation length is 1/4 of a second.
For the next 20 minutes, Bill did a bunch of live coding to show how easy it is to do animations, as well as how you can group animations together. It looked fairly easy if you know Objective-C.
The iPhone OS is Unix, so you should be able to use any Unix utilities on it. The Mac is really good at drawing. Quartz is the underlying drawing framework on the Mac and iPhone. It's basically an API for Illustrator/Photoshop that allows you to programmatically do what those programs allow. Anything you can do with Illustrator/Photoshop can be done programmatically with Quartz. All of that power that's available on the Mac is available on the iPhone. The final piece of drawing technology is OpenGL. The Cro-Mag Rally game was originally written 5 years ago for the Mac in OpenGL. The creators were able to port it to the iPhone in 1.5 weeks.
Bill then went into OpenGL and how you can use it to build a trackball application. Good presentation, great speaker. Even though Bill did a good job of explaining how animations work, it's obvious that you must know Objective-C to do this stuff. I can't imagine what the code behind some of the cool iPhone games (i.e. Monkey Ball, Asphalt4) looks like.