Changes

The iOS 4 Architecture and SDK Frameworks

4,570 bytes removed, 19:44, 4 January 2011
no edit summary
* [[The iPhone iOS 4 Core OS Layer]]
 
== The iOS Media Layer ==
 
The role of the Media layer is to provide iOS with audio, video, animation and graphics capabilities. As with the other layers comprising the iOS stack, the Media layer comprises a number of frameworks that may be utilized when developing iPhone apps. In this section we will look at each one in turn.
 
=== Core Video Framework (CoreVideo.framework) ===
 
A new framework introduced with iOS 4 to provide buffering support for the Core Media framework. Whilst this may be utilized by application developers it is typically not necessary to use this framework.
 
=== Core Text Framework (CoreText.framework) ===
 
The iOS Core Text framework is a C-based API designed to ease the handling of advanced text layout and font rendering requirements.
 
=== Image I/O Framework (ImageIO.framework) ===
 
The Image IO framework, the purpose of which is to facilitate the importing and exporting of image data and image metadata, was introduced in iOS 4. The framework supports a wide range of image formats including PNG, JPEG, TIFF and GIF.
 
=== Assets Library Framework (AssetsLibrary.framework) ===
 
The Assets Library provides a mechanism for locating and retrieving video and photo files located on the iPhone device. In addition to accessing existing images and videos, this framework also allows new photos and videos to be saved to the standard device photo album.
 
=== Core Graphics Framework (CoreGraphics.framework) ===
 
The iOS Core Graphics Framework (otherwise known as the Quartz 2D API) provides a lightweight two dimensional rendering engine. Features of this framework include PDF document creation and presentation, vector based drawing, transparent layers, path based drawing, anti-aliased rendering, color manipulation and management, image rendering and gradients. Those familiar with the Quartz 2D API running on MacOS X will be pleased to learn that the implementation of this API is the same on iOS.
 
=== Quartz Core Framework (QuartzCore.framework) ===
 
The purpose of the Quartz Core framework is to provide animation capabilities on the iPhone. It provides the foundation for the majority of the visual effects and animation used by the UIKit framework and provides an Objective-C based programming interface for creation of specialized animation within iPhone apps.
 
=== OpenGL ES framework (OpenGLES.framework) ===
 
For many years the industry standard for high performance 2D and 3D graphics drawing has been OpenGL. Originally developed by the now defunct Silicon Graphics, Inc (SGI) during the 1990s in the form of GL, the open version of this technology (OpenGL) is now under the care of a non-profit consortium comprising a number of major companies including Apple, Inc., Intel, Motorola and ARM Holdings.
 
OpenGL for Embedded Systems (ES) is a lightweight version of the full OpenGL specification designed specifically for smaller devices such as the iPhone.
 
iOS 3 or later supports both OpenGL ES 1.1 and 2.0 on certain iPhone models (such as the iPhone 3GS and iPhone 4). Earlier versions of iOS and older device models support only OpenGL ES version 1.1.
 
=== iOS Audio Support ===
 
iOS is capable of supporting audio in AAC, Apple Lossless (ALAC), A-law, IMA/ADPCM, Linear PCM, µ-law, DVI/Intel IMA ADPCM, Microsoft GSM 6.10 and AES3-2003 formats through the support provided by the following frameworks.
 
=== AV Foundation framework (AVFoundation.framework) ===
 
An Objective-C based framework designed to allow the playback, recording and management of audio content.
 
=== Core Audio Frameworks (CoreAudio.framework, AudioToolbox.framework and AudioUnit.framework) ===
 
The frameworks that comprise Core Audio for iOS define supported audio types, playback and recording of audio files and streams and also provide access to the device’s built-in audio processing units.
 
=== Open Audio Library (OpenAL) ===
 
OpenAL is a cross platform technology used to provide high-quality, 3D audio effects (also referred to as positional audio). Positional audio can be used in a variety of applications though is typically using to provide sound effects in games.
 
=== Media Player framework (MediaPlayer.framework) ===
 
The iOS Media Player framework is able to play video in .mov, .mp4, .m4v, and .3gp formats at a variety of compression standards, resolutions and frame rates.
 
== Core Midi Framework (CoreMIDI.framework) ==
 
Introduced in iOS 4, the Core MIDI framework provides an API for applications to interact with MIDI compliant devices such as synthesizers and keyboards via the iPhone’s dock connector.
== The iOS Core Services Layer ==