The iPhone SDK was officially announced on March 6, 2008, at an Apple Town Hall meeting.
- The first Beta release of the SDK was made available immediately, while the launch of applications will require waiting until a firmware update in June, 2008. This update will be free for iPhone users, however, there will be a charge for iPod touch owners
- On March 27, 2008, Apple released the Beta 2 release of the SDK, which added Interface Builder, an application for building graphical user interfaces for iPhone applications
- On April 8, 2008, Apple released the Beta 3 update to the SDK
- On April 23, 2008, Apple released the Beta 4 SDK includes Xcode IDE, iPhone simulator with Open GL ES support, Interface Builder, Instruments, frameworks and samples, compilers, and Shark analysis tool
- Apple has released iPhone SDK Beta 5. According to Apple the release is centered on bug fixes and support for the latest iPhone OS
iPhone OS is derived from Mac OS X,which based on the Mach Kernel and Darwin core as Mac OS X.
Mac OS X Architecture
The Mac OS X kernel environment includes the
- Mach kernel
- I/O Kit
- File systems
- Networking components.
These are often referred to collectively as the kernel.
The BSD layer is based on the BSD kernel, primarily FreeBSD. The BSD component provides
- file systems
- networking (except for the hardware device level)
- UNIX security model
- syscall support
- the BSD process model, including process IDs and signals
- FreeBSD kernel APIs
- many of the POSIX APIs
- kernel support for pthreads (POSIX threads)
For more details about Kernel architecture,please visit the following link
The iPhone SDK broken down into four layers.
- Core OS
- Core Services
- Cocoa Touch
iPhone SDK OS,basically derived with Mac OS X.
The Core Services layer contains the contact address book,networking basically supports both IP and DDP (AppleTalk transport),multicast support,server tuning,packet filtering etc.
SQLite is a mostly ACID-compliant relational database management system contained in a relatively small (~500kb) C programming library. A standalone program called sqlite3 is provided which can be used to create a database, define tables within it, insert and change rows, run queries and manage an SQLite database file. This program is a single executable file on the host machine. It also serves as an example for writing applications that use the SQLite library.
The Audio and video features are embedded in the iPhone. OpenAL (Open Audio Library) is a free software cross-platform audio API. It is designed for efficient rendering of multichannel three dimensional positional audio. Its API style and conventions deliberately resemble that of OpenGL.
Image file formats such as JPG,PNG and TIFF are supported. PDF documents also can be read through iPhone.
Quartz 2D is the primary two-dimensional (2D) text and graphics rendering library: It directly supports Aqua by displaying two-dimensional graphics to create the user interface, including on-the-fly rendering and anti-aliasing.
Core Animation provides a way for developers to produce animated user interfaces via an implicit animation 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.
OpenGL (Open Graphics Library) is a standard specification defining a cross-language cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives.
Cocoa Touch provides an abstraction layer of the iPhone OS, which is the operating system for the iPhone and iPod touch. Cocoa Touch is based on the Cocoa API toolset for building software programs for Mac computers.
Cocoa applications are typically developed using the development tools provided by Apple, specifically Xcode (formerly Project Builder) and Interface Builder, using the Objective-C language.
Cocoa applications worked on keyboard and mouse basis. Cocoa is enhancement especially for iPhone environment (Touch Screen).
Multi-touch is a human-computer interaction technique and the hardware devices that implement it, which allow users to compute without conventional input devices (i.e., mouse, keyboard). Multi-touch consists of a touch screen (screen, table, wall, etc.) or touchpad, as well as software that recognizes multiple simultaneous touch points, as opposed to the standard touch screen (i.e. computer touchpad, ATM), which recognizes only one touch point.
Accelerometer is a device for measuring the acceleration and gravity induced reaction forces it experiences. Single- and multi-axis models are available to detect magnitude and direction of the acceleration as a vector quantity.
Accelerometers are increasingly being incorporated into personal electronic devices such as media players, gaming devices, or step counters. Smartphones and personal digital assistants (such as Apple's iPhone and iPod Touch and the Nokia N95) contain accelerometers for user interface control, e.g., switching between portrait and landscape modes.
People Picker allows iPhone applications to access the iPhone's Address Book, while Picture Picker opens up access to the iPhone's Photo Library and Camera.
Application Deployment in Device
Once the application is developed, UI designed, and platform tested in the virtual iPhone Simulator environment, developers will be able to debug their application with Remote Debugger. The Remote Debugger allows the developer to connect their iPhone to their computer, run the newly minted application, and monitor in real-time the iPhone's CPU usage, memory usage, and frame rates - giving the developer greater insight into the application's impact on the iPhone.
Syncing an application to your iPhone through the 30-pin iPhone dock connector. This allows you to do live debugs on your code, while using the application on it's native hardware. We must pay the $99 (standard) or $299 (enterprise) in order to transfer an application to an iPhone for testing. You use the certificate to sign your code.