Core Animation
Encyclopedia
Core Animation is a data visualization API
used by Mac OS X
10.5 and later as well as iOS to produce animated user interfaces.
model as well as an "explicit" model. The developer specifies the original and final states of an object, and Core Animation handles interpolation
. This allows animated interfaces to be created with relative ease, as no specific code for the animation is required by the developer.
Core Animation can animate any visual element, and it provides a unified way of accessing Core Image
, Core Video
, and the other Quartz technologies
. Like the rest of the graphics model, Core Animation can be accelerated by a graphics processor (GPU).
Animated sequences execute in a thread independent from the main run loop, allowing application processing to occur while the animation is in progress. In this way, application performance is not affected, and animations can be stopped, reversed, or retargeted while in progress.
Updating an existing Cocoa application to use Core Animation should be a simple process. The standard GUI widgets and windows used by the application need be initially registered into a Core Animation setup function. Beyond that, core animation code can be largely segregated from standard GUI logic.
, but actually first emerged from the iPhone
software team. It was shown publicly for the first time on August 7, 2006 during WWDC 2006
.
At the Macworld Expo 2007, Apple announced that the iPhone runs a specially adapted version of Mac OS X
and uses Core Animation.
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
used by Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
10.5 and later as well as iOS to produce animated user interfaces.
Overview
Core Animation provides a way for developers to produce animated user interfaces via an implicit animationImplicit animation
Implicit animation is a concept in user interface design in which animations can be programmed or styled within pre-existing constraints. It is distinct from explicit animation, which involves building the animation objects, setting their properties, and then applying those animation objects to the...
model as well as an "explicit" model. The developer specifies the original and final states of an object, and Core Animation handles interpolation
Interpolation
In the mathematical field of numerical analysis, interpolation is a method of constructing new data points within the range of a discrete set of known data points....
. This allows animated interfaces to be created with relative ease, as no specific code for the animation is required by the developer.
Core Animation can animate any visual element, and it provides a unified way of accessing Core Image
Core Image
Core Image is a pixel-accurate, near-realtime, non-destructive image processing technology in Mac OS X. Implemented as part of the QuartzCore framework of Mac OS X 10.4 and later, Core Image provides a plugin-based architecture for applying filters and effects within the Quartz graphics rendering...
, Core Video
Core Video
Core Video is the video processing model employed by Mac OS X. It links the process of decompressing frames from a video source to the rest of the Quartz technologies for image rendering and composition...
, and the other Quartz technologies
Quartz (graphics layer)
Quartz specifically refers to a pair of Mac OS X technologies, each part of the Core Graphics framework: Quartz 2D and Quartz Compositor. It includes both a 2D renderer in Core Graphics and the composition engine that sends instructions to the graphics card...
. Like the rest of the graphics model, Core Animation can be accelerated by a graphics processor (GPU).
Animated sequences execute in a thread independent from the main run loop, allowing application processing to occur while the animation is in progress. In this way, application performance is not affected, and animations can be stopped, reversed, or retargeted while in progress.
Updating an existing Cocoa application to use Core Animation should be a simple process. The standard GUI widgets and windows used by the application need be initially registered into a Core Animation setup function. Beyond that, core animation code can be largely segregated from standard GUI logic.
History
Core Animation first appeared in Mac OS X v10.5Mac OS X v10.5
Mac OS X Leopard is the sixth major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers. Leopard was released on 26 October 2007 as the successor of Tiger , and is available in two variants: a desktop version suitable for personal computers, and a...
, but actually first emerged from the iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...
software team. It was shown publicly for the first time on August 7, 2006 during WWDC 2006
Worldwide Developers Conference
The Apple Worldwide Developers Conference, commonly abbreviated WWDC, is a conference held annually in California by Apple Inc. The conference is primarily used by Apple to showcase its new software and technologies for developers, as well as offering hands-on labs and feedback sessions...
.
At the Macworld Expo 2007, Apple announced that the iPhone runs a specially adapted version of Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
and uses Core Animation.
See also
- List of widget toolkits
- ClutterClutter (computing)Clutter is an open source graphics library for creating hardware-accelerated user interfaces. It relies upon OpenGL or OpenGL ES for rendering, can be compiled on different platforms and has multiple bindings to other languages...
- Windows Presentation FoundationWindows Presentation FoundationDeveloped by Microsoft, the Windows Presentation Foundation is a computer-software graphical subsystem for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0. Rather than relying on the older GDI...
External links
- Core Animation on Apple's developer site (Accessed 2010-02-13)
- Apple's Core Animation Programming Guide (Accessed 2010-02-13)