iPhone OS:
iPhone OS comprises the operating system and technologies that you use to run applications natively on iPhone and iPod touch devices.New technologies that are added to iPhone that are not available in Mac OS are - Multi-touch interface and accelerometer support.iPhone OS technologies Layers:
In iPhone OS, the underlying system architecture, and many of the technologies, are similar to those found in Mac OS X.
High level over view of these layers:
Layer 4 Cocoa Touch
Layer 3 Media
Layer 2 Core Services
Layer 1 Core OS
Here,
Core OS and Core Services layers : Core OS and Core Services layers contain the fundamental interfaces for iPhone OS(mostly C based), example :-
- Accessing files,
- Low level data types
- Bonjour services
- network sockets and so on
- Core Foundation
- CFNetwork
- SQLite
- Access to POSIX threads and
- UNIX sockets etc.
Media Layer : It is mixture of C - based and Objective-C based interfaces.It supports 2D and 3D drawing, audio, and video.
This layer includes
C-based technologies
- OpenGL ES.
- QuartZ.
- Core Audio.
- Core Graphics.
Objective-C based technologies:
- Core Animation(animation engine).
Others:
Cocoa Touch Layer:
- Audio Toolbox.
- Audio Unit.
- AV Foundation.
- Media Player
Cocoa Touch Layer:
This is has most of Objective-C based technologies.
Cocoa Touch is the application development environment for iPhone OS,includes Objective-C runtime and two core frameworks namely - Foundation and UIKit frameworks.
Foundation Framework : Publishes a procedural(ANSI C) interface.This implements the root class, NSObject, which defines basic object behavior.
It implements classes that represent
- primitives types
- collections
- internationalization
- object persistance
- file management
- XML parsing
UIKit : For developing an application's user interface.
Includes classes for :
- Event handling
- Drawing
- Image-handling
- Text processing
- Typography and
- Inter-application data transfer.
Also includes UI elements such as :- views, sliders, buttons, text fields, and alert dialogs.
Other frameworks at this level give you access to the user’s contact, photo information, the accelerometers and other hardware features of the device.
Core Animation:
Core animation is a Objective-C framework that supports animations.Core animation is not a drawing technology itself, in the sense that it does not provide primitive routines for creating shapes, images, or other types of content. Instead, it is a technology for manipulating and displaying content that you created using other technologies.
Core Graphics and Quartz 2D:
The Core graphics framework is a C based API.Quartz 2D API is part of the Core graphics framework, so you may see Quartz referred to as Core Graphics or simply CG.Quartz 2D is an advanced, 2D drawing engine available for iPhone application development outside of the kernel.
It provides low-level,light weight 2D rendering with unmatched output fidelity regardless of the display or printing device.
Quartz 2D is resolution and device independent. you do not need to think about the final destination when you use the Quartz 2D API for drawing.
In iPhone OS Quartz works with all available graphics and animation technologies, such as Core animation, OpenGL ES and the UIKit classes.