iPhone OS runs on iPhone and iPod touch devices.
Hardware devices are managed by iPhone OS and provides the technologies needed for implementing native applications on the phone.
The OS ships with several system applications such as Mail, Safari, Phone, which provide standard services to the user.
It is similar to Mac OS X architecture
It acts as an intermediary between the iPhone and iPod hardware an the appearing applications on the screen
The user created applications never interact directly with the appropriate drivers, which protects the user applications from changes to the hardware.
Mac OS 10.5/10.6 iPhone SDK (Software Development Kit 3.0/4.0).
IPhone SDK consists of:
IDE to develop iPhone Apps is XCode(This tool is inbuilt in iPhone SDK)
Interface Builder This is used to design GUI of Apps(Inbuilt feature of iPhone SDK)
Instruments This is used to check any memory leaks in our apps (Inbuilt in SDK)
Simulator This is used to test our apps before deploying into real device.
View controller objects takes care of the presentation of app's content on the screen. A view controller is used to manage a single view along with the collection of subviews. It makes its views visible by installing them in the app's window.
The app delegate object is created by UIApplicationMain function at app launch time. The app delegate object's main job is to handle state transitions within the app.
To change the content of your app, you use a view controller to change the views displayed in the corresponding window. Remember, window itself is never replaced.
Data model objects are app specific objects and store app's content. Apps can also use document objects to manage some or all of their data model objects.
Document objects are not required but are very useful in grouping data that belongs in a single file or file package.
In such case the event will be dispatched to your app delegate for processing.
App delegate is declared as a subclass of UIResponder by Xcode project templates.