Core Animation for Fun and Profit

Core Animation made UI on the original iPhone possible. It offloaded the heavy tasks to the GPU and also added beautiful animations. It is an out-of-process engine that takes the layer tree from our app, packages it, and renders it in a separate process while our app is running. The iOS app experience is unimaginable without animations because they provide a context to the user. Animations are either implicit, the default property changes, or explicit, our custom animations. Explicit animations come in four flavors: basic animations, keyframe animations, animation groups, and spring animations. All properties that can be numerically interpolated can become animatable. Non-numeric properties can use transitions.