Overview of iOS Platform

Cocoa Touch | Foundation | History | IOS | IPhone | Objective-C | UIKit

iPhone Application Development


This entry is part 2 of 9 in the series iPhone Application Development

History Behind iOS & Objective-C

iOS history: Long time ago in 1972, we have C Language, which is fantastic language. Lots of languages since then build based on this language. But has some limitations like not object oriented. In 1980 we have small talk came along and they used C and some of the great ideas in small talk to build objective-c in 1983.

This point it has nothing to do with apple but Steve Jobs was running NeXT and in 1988 NeXT licensed objective-c and used it to build NeXT Step Operating System. Then in 1996 Apple bought NeXT and for the next few years they used objective-c in developing OS X. OS X is build on objective-C and because OS X is build on objective-c, The iPhone OS is build on objective-c. In 2008 we have the iPhone OS 2.0 with iPhone SDK, the first time that non-apple developers can develop iPhone Application and have to do that in Objective-C. And then iOS 3, iOS 4, iOS 5 and now in 2012 apple launched iOS 6. We will use Objective-C to build our iPhone Application.

Overview of iOS

iOS is Apple’s proprietary operating system that runs on the iPhone, iPod Touch, and iPad. Built for multi-touch interaction, all user input in iOS is through touch gesturing, a technology that Apple has pioneered. Through the use of actions such as swiping, pulling, pinching, and tapping, users are put in a fluid, intuitive landscape. Many of Apple’s devices house gyroscopes and accelerometers, which allows users to change the orientation of applications as well as directly control by simply tilting the devices.

Mac OS X acts as the parent software for iOS, as it shares the Darwin operating system foundation, making it characteristically a UNIX operating system. There are four abstraction layers, ways of hiding the implementation details of a particular set of functionality, within iOS: the Core OS layer, Core Services layer, the Media layer, and the Cocoa Touch layer.

The overall trend of the operating system has given greater control to developers. There was no SDK (software development kit) for building native apps until iPhone OS 2.0, and at that point it was rather limited. iPhone OS 3.0 saw tremendous improvements, giving developers new abilities such as Core Location and Push Notifications. Finally, iOS 4.0 saw the introduction of multitasking, though in practice it asks more like app switching.

The App Store, one of Apple’s native applications found within iOS, is one of the biggest mobile marketplaces in the world. As of January 2011, there are 400,000 apps in the App Store, and users have downloaded over 10 billion of these programs. While these numbers sound great, it makes it exponentially more difficult for your app to be noticed. However, if it does get noticed, the chances of it paying off are greater. Developers receive a 70 percent cut of whatever they choose to charge customers for their apps, with the other 30 percent going to Apple.

iOS Layers


iPhone SDK: iOS platform


Core OS Layer is the closest to the iPhone Hardware, which is the Mach BSD Unix Kernel which is full multitasking unix kernel. this layer gives us lots of things like Sockets, Security, Networking, File System and so on. Most of these APIs are C APIs and not Object Oriented. we wont be programming at this layer very much.

Core Services Layer is above the Core OS layer and it starts to be more object oriented. this layer provides lots of same services as the layer below (Core OS) but with Object Oriented APIs. For Example, Networking and Sockets. we also have some APIs for Threading, Address Book, Collections (Arrays, Dictionary etc.) at Core Services layer. Think of this is like a mostly object oriented layer which provides basic functionalities and covering that Core OS.

Media Layer is next layer up away from the iPhone Hardware. Remember that iPhone, iPad, iPod all are fundamentally Multimedia devices. So multimedia code runs throughout the iOS, its everywhere. So mostly API that you see above Core Services layer is build by thinking designers mind.

Cocoa Touch Layer is the one where we spend our 90% of the time while developing iPhone Development. This is where all our Buttons, Sliders, Views, Navigation Mechanism, Alerts, Camera, Photo Library etc., This is entirely Object Oriented and follows a design paradism which we will learn when we start developing our first application for iPhone.


Series Navigation<< iPhone SDK: Objective-C ConditionObjective-C Tutorial with xCode >>

Bookmark Link using: bookmark at folkd