Smartphones have come with many functionalities, such as internet access, with complete web browsing software, and “multimedia capabilities”.1 This has made many developers to come up with many different kinds of applications which enable users to enjoy the functionalities of smartphones. Many smartphone operating systems developers and vendors such as Apple, Google, Research in Motion, and Nokia have also emerged and are developing platforms that enable application developers to create and install their applications.
The operating systems manufacturers have been struggling to provide the best features including portability, security, privacy, accessibility, usability, and flexibility to mobile users. These form the basis of their competition. This document compares Apple’s iPhone and Google’s Android operating systems.
iPhone operating system (OS) is an operating system designed by Apple and was initially run on iPhones. It has been renamed iOS and is run in iPad and iPod Touch. It has an interface which can be entirely touched and allows easy manipulation of images and text.
Android is an operating system designed by Google which runs on Linux Kernel.2 Linux supports hardware; while Android provides the application programming interface and the user interface which do not depend on any device. Android is run on many devices including tablets, smartphones, and netbooks. It supports images and text.
iPhone operating system consists of different layers of software that provide platform for the development of different types of application. It is developed in Objective-C and communicates to hardware through application programming interface. Applications are therefore able to invoke any of the layers of the operating system. The various layer in the operating system include Cocoa Touch, Media Services, Core Services, and Core OS, all embedded in an iPhone hardware. Figure 1 below depicts the layers of iPhone operating system.
As depicted in the diagram, Cocoa Touch is at the top of the layers and is the most commonly used by application developers. It is coded in Objective-C and is based on Mac OS application programming interface.3 It contains different frameworks including UIKit, Map kit, Push notification service, Message UI, Address Book, and Game Kit frameworks.4 The UIkit is where developers interact mostly when developing their applications. It helps them to create user interfaces, manage lifecycle of their applications, handle events in their applications, add functionalities, handle data, and allow interaction with hardware components such as camera, sensors, and battery.
Mapkit allows developers to develop applications that can use maps to get the map of an area or direct a user to a specific place. The Push Notation service allows developers to develop applications that notify users of an event that has occurred. This is normally shown as a pop up window with functionalities that direct users to click on a button to read full information. It is normally accompanied by vibration or sound and is mostly used by news agencies to inform users of any breaking news.
The message UI allows creators to develop applications that enable users to create and send messages. Developers can create some messages to users and allow them to edit before sending. Address Book UI allows users to create, display and edit contact information such as phone numbers and email address using the applications. The Game kit frame work allows communication between users running the same applications possible.
The media services layer provides iPhone operating systems with video, audio, graphics and animation functionalities. It allows drawing in two dimensions and downloading and reading documents in PDF format. The Core Services Layer allows access to the iPhones’ phone book by applications. It contains core data framework which reduces the amount of code required by developers to develop an application, core foundation framework which allows manipulation of data types such as string, integer, float, and characters, and SQLite library which allows creation and manipulation of a small SQL database in applications.5
The bottom layer, Core OS, provides ways of interfacing the internal and external devices, managing memory, connecting networks, and handling file systems.