In Depth Analysis Of Ios And Android Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

This paper delves into the Developer side of the iOS and Android platforms. In order to fully understand the developer aspect of these platforms, one must first learn about the operating systems that the developers interact with. The main aspects of the developer side of these platforms are how one becomes a developer, application policies, application distribution, and the market place. The application market place is where one can truly compare the two. Finally, this paper will draw several conclusions regarding both operating systems and their viability as a successful platform for developers.


In this part, we will focus on how to become an iOS developer. We will cover basic information regarding iOS, procedures to register to be a developer, steps to develop a program, and tools used in iOS development.

iOS Overview

Before getting into how to develop an iOS program, we would like to introduce some basic concepts of iOS.

iOS is a mobile operating systems developed by Apple. It is composed of operating systems and technologies that developers use to run applications on Apple's devices. iOS was originally used in only iPhone, but had been extensively applied to other Apple's devices such as iPod Touch, iPad, and Apple TV. iOS shares some common features with Mac OS X technologies. However, some additional functions are added to be used on mobile environment. For example, the user interface of iOS is based on the concept of direct manipulation, which allows users to directly manipulate objects presented to them using actions that correspond at least loosely to the physical world. The example of direct manipulation is when iPhone users resizing an object on the iPhone screen. Moreover, iOS uses multi-touch gestures and supports accelerometer. Depending on the model, iOS consumes approximately 500 megabytes of the device's storage.

As of now, the current version of iOS is Version 4. It was announced in April 2010, three days before iPhone 4 releases. iOS 4 introduced some new features such as multitasking, threaded email, and several business-oriented features.

iOS Architecture

At the high level, iOS acts as an intermediary between the underlying hardware and the applications that appear on the screen. Applications that developers create never interact directly with the hardware but instead go through system interfaces, which interact with the appropriate drivers. This abstraction protects an application from changes to the underlying hardware.

The implementation of iOS is composed of four abstraction layers as shown in Figure 1. Four layers include Core OS layer, Core services layer, Media layer, and Cocoa Touch layer.

Figure 1: iOS technology layers

The lower layers, including Core OS and Core Services layers, contain the fundamental interfaces for iOS. For example, they manipulate how users will access files, low-level data types, network sockets etc.

The upper layers, including Media and Cocoa Tough layers, are used to work with more advanced technologies that use interfaces based on a mixture of C and Objective-C [1] . For example, the Media layer contains the technologies used to support 2D and 3D drawing, audio, and video. The Cocoa Touch lay provides the fundamental infrastructure used by an application such as object-oriented support for collections, file management, network operations, access to the user's contact and photo information, and other hardware features of the device.

To implement any new technologies, we should start with higher-level layers because frameworks in those levels make it easy to support standard system behaviors with the least amount of effort on developers' part. The lower-level frameworks should be used only to implement custom behavior that is not provided at a higher level.


To become a developer for iPhone, iPod or iPad, a potential developer must register the iOS Developer Program of Apple which provides a complete and integrated process for developing and distributing iPad, iPhone and iPod touch applications, and the annual fee of the registration is $99 per year.

Three types of registration

Enroll as an individual: if enrolled as an individual in the IOS Developer Program, the name will appear as the "seller" in the App Store and the one who registered will be the sole developer who will be allowed to access to program resources.

Enroll as company: if enrolled as a company, additional developers can be added into the development team, and the company name will appear as the "seller" in the App Store. Legal Company/Organization name and business documents are needed to enroll as company.

Enroll as student: there is an academic version of this program which is free, but it needs to wait until the institution is verified.

Enroll the Apple developer program

As a new developer, we need to create a new account for an Apple developer program, after log in with our newly created account we can then choose the ios platform we are going to develop with. After the Apple Developer Agreement, a verification letter will be sent to the Email address we've registered with a verification code, with this code, we can confirm our enrollment. Then there will be a Program License Agreement, after which we can add the Developer Program to cart and pay to become an Apple developer.

After becoming a developer, one can have access to a comprehensive set of development tools and resources for assistance in developing applications, the set of development tools are described below in Tools for developing iOS.

Figure 2: IOS developer program enrollment


From Apple's developer web site, there are 3 steps to develop an iOS application: develop, test, and distribute.


First, developers must write a program on iOS using iOS SDK provided by Apple. Development tools can be downloaded from Apple's developer website. Moreover, they can further obtain more information from the website.

Xcode and iOS SDK 4.1 is the complete Xcode developer toolset for Mac, iPhone, and iPad, which can be downloaded free from the apple website after enrolled as a developer and MAC OS environment is needed to run. It includes the Xcode IDE, iOS Simulator, and all required tools and frameworks for building Mac OS X and iOS apps.


Second, developers must test if a developed program works or not. There are 2 types of tesing:

Test in real-time

This test will allow developers to plug in devices and test their programs using Xcode's graphical debugger. Moreover, developers can collect real-time performance data in Instruments' timeline view. These tools will help developers be able to quickly identify and address performance issues.

Test over the air

This test will allow developers to run their programs on devices. Developers can test the programs' performance on Wi-Fi or carrier's network for a real world user experience.

Apart from testing application by themselves, developers can request for technical support from the iOS Developer program. The program includes two Technical Support Incidents where Apple engineers will provide developers with code-level assistance, helpful guidance, or point developers towards the appropriate technical documentation to ease the development process.


Finally, developers can distribute their own applications in two different ways:

Ad Hoc Distribution

For Ad Hoc distribution, developers can share their applications with up to 100 other Apple's users through e-mail, website, or server.

App Store Distribution

For App Store distribution, developers can distribute their applications on Wi-Fi and cellular networks via App Store. Users can search applications by genre, featured, and top ten. Developers are able to set any price above a set minimum for their applications to be distributed through the App Store. They will receive a 70% share. Alternately, they may opt to release the application for free and need not pay any costs to release or distribute the application except for the membership fee, which is $99 per year. Once downloaded, customers will be notified whenever an update is available.

According to Wikipedia, some have criticized the mandatory Developer Agreement's refund policy, which says that if someone purchases an app from the App Store, 30% of the price goes to Apple, and 70% to the developer. If a refund is granted to the customer (at Apple's discretion), the 30% is returned to the customer from Apple, and 70% from the developer; however, Apple can then take another 30% of the cost from the developer to make up for Apple's loss.


The first program, which Apple uses as a tutorial, is to develop a simple iOS application that has a text field, a label and a button. As illustrated by the figure, once we type any words in the text filed and press button, the label will show 'Hello' following with the input word.

The following will briefly describe steps to develop this iOS application.

Design patterns

Three patterns will be used in this application.

Delegation: a pattern where one object sends messages to another object specified as its delegate to ask for input or to notify the delegate that an event is occurring.

Model-view-controller (MVC): MVC sets out three roles for an object in the application. In our first application, the model is simply a string. View objects know how to display and edit data. Controller mediates between models and views.

Target-action: enables a view object that presents a control in response to a user event to send a message or action to another object.

Create the project using XCode

As mentioned earlier, the main tool we use to create applications for iOS is Xcode. The interface of Xcode is shown below.

We must use XCode to create a new project and set up basic application environment. You can study in more details from Apple Developer website.

Add a view controller

View controller objects play an important role in most of iOS applications. They are responsible for managing a view, and help with navigation and memory management. The steps to add a view controller include adding a view controller class, adding a view controller property, creating the view controller instance, setting up the view, housekeeping, and implementation source listing. After we complete all these steps, our program should be able to compile and run as the application.


Publishing Applications Online: Approval Policy

The app approval process is in place to ensure that applications are reliable, perform as expected, and are free of explicit and offensive material. The App Review Team checks every application submitted by the developers in order to protect consumer privacy, safeguard children from inappropriate content, and avoid applications that degrade the core experience of iPhone. All aspects of the developer's applications must comply with a set of technical, content, and design criteria outlined in App Review Guidelines, and the main content is summarized as following:

The application should be functional; it has to have proper metadata; Apps need to notify and obtain user consent before collecting, transmitting, or using location data; Apps that provide Push Notifications have to use the Apple Push Notification (APN) API; Apps must comply with all terms and criteria about trademarks and trade dress; Apps must have proper media content and user interface; Apps must not cause damage to the device; Apps must not be offensive and violent; Apps should protect the privacy of the users; Apps should not have content of pornography; Apps should not contain defamatory, offensive, mean-spirited references or commentary about a religious, cultural or ethnic group; Sweepstakes and contests must be sponsored by the developer of the app, the lottery app should be permissible by law; Apps about charities and contributions must be free, and finally Apps must comply with all legal requirements. Besides the App Review Guidelines, there are also Developer Program License Agreements, Ios Human Interface Guidelines, and Apple Human Interface Guidelines.

After developer's app has been reviewed and approved, then it will be set to the Ready for Sale. If an issue is discovered during the review of the app, developer will receive an email detailing the reason why the application cannot be approved as submitted. And Apple allows developer to modify the app and resubmit it for review.

iPhone Application Market Place

The App store of Apple is the world's largest collection of mobile apps--over 300,000 and counting in practically every category and many of them are free.

In App store, Apple classifies the hundreds of Apps mainly in the following categories: Books, business, education, entertainment, education, finance, game, healthcare & fitness, lifestyle, music, medical, navigation, news, photography, productivity, reference, social networking, sports, travel, utilities and travel.

In order to promote its apps, The App store has different apps ranking, such as the new and noteworthy apps, the hot apps, staff favorites, App of the week, Game of the week, top Charts, and great free apps.

For the apps in App store, the most popular price point is $0.99, not free. More applications cost $0.99 than those are gratis [14]. Most developers would have to sell a ton of applications to make any real money; it's definitely a labor of love for most developers. Unlike the BlackBerry applications, which cost a minimum of $2.99, 80 percent of iPhone apps are $1.99 or less. Although a lot of apps are cheap, there is a market for expensive applications, there are still many apps priced at $9.99. For different categories, games are the most popular type of app, followed by books (43,258 paid and 4897 free), and entertainment (20,343 paid, 11,237 free), the least popular category is weather (662 paid, 397 free).

For the free apps, the trend is that when the category is more popular, the amount of paid apps will exceed that of free much more, like in games and books, paid applications can be way more than those free ones. The less popular category will have a smaller difference, for some category, there are even more free apps, for example for business category there are 5446 free and only 3361 paid.


iPhone Developer Community: iPhone Developer Forum

The iPhone developer forum, a place which Apple provide for the developers to gather together to share their concerns about iPhone Development.

The main topic include from how to get started for developers new to iPhone SDK to almost every aspects developers concern about, which are: application frameworks, integration technologies, graphics and media technologies, core OS, Web technologies, localization (tools, translation, Unicode, internationalized dates and currency, etc), developer tools, performance analysis and debugging, distribution and archive. Developers can post their questions and concerns on the developer forum, other developers who can solve the problem or may share the same concern can come out to explain, which benefits iOS developers.

iOS Developer Opinions

There are many concerns and feedback from iOS developers:

About price

From the developers' perspective, initially price is based on how much development time was required. After that initial price point can change based on demand, that is to say, by how popular the application is, actually from the developers perspective, the price and the profit is still the first concern, the personal developer may not concern the application price that much, because some of them develop iPhone application just out of love, but for some application development company, price is their primary concern.

Best thing and biggest challenge about designing for the iPhone

Most developers express that the best thing about designing for the iPhone is the quick development cycles, the Apple has a good procedure from the right beginning of a development to the distribution of the application, the cycles is usually very regular and quick. However developers also tells that the lack of example code may be the biggest challenge, when problems come out, developers cannot find reliable sources to turn to help, searching for similar issues usually shows others having similar issues with no solution, Apple has a NDA (Non-Disclosure Agreement), which makes it hard for developers to talk much about the SDK (Software Development Kit). Because of this, information is sometimes hard to come by and can make programming difficult. And developers think that Apple does however supply excellent documentation, videos and examples, and also provides the SDK for free, which is a good way to start learning how to develop for the iPhone, what they need is good ideas, lots of free time, and obviously a Mac computer.

App Store Revenue

To create applications for the App Store, either free ones or those for purchase you must pay $99/yr to be a developer. This will then allow you to install your application on your iPhone or iPod touch for testing as well as attaining the ultimate goal of getting your application out to the world. And if the application is for purchase, 70% goes to the developer and 30% goes to Apple, Apple is making a business which will make pure profit, however 70% is like a big share, but according to a survey from the Evans Data Spring North American Developer Study [8] which was taken by over 400 developers, found that 80% think the revenue split (70% of the app's sale goes to the developer, 30% to the store) is unfair.  The 30-70 split introduced by the iPhone App Store has basically set the standard for Android, Blackberry and other handsets, all of whose corresponding app stores take a 30% cut from developers, but according to the study, developers are not quite satisfy with the status quo. Only a few developers actually prefer the model of App store distribution.  Many more of them preferred direct sales to companies and end-users.  They thought that app stores shouldn't impose restrictions on price, and content.

The experience of submitting the program

For the experience of subbing their program to apple, most developers think that the experience is not bad, maybe even a lot better than they expected: Apple has a lot of specific directions and steps to go through to make sure everything is in order. The process is not quite long, and developers do not need to fill out a contract before they are allowed to sell the products. And as for demonstrating what the application does or what APIs it uses, Apple only wants to know if you are using encrypted information because they are selling Applications globally. So from the perspective of developers, apple does a good job of simplifying, standardizing and facilitating the process, which obviously win the appreciation of developers'.

Like and dislike about being an iPhone developer and using the SDK

Most developer think SDK is an amazing feat and the fact it uses the Cocoa framework means that anyone with a previous purchase of a Mac gets an immediate advantage, which is good because there's a lot of very talented developers already on the platform, and developers always can get new, innovative information during their experience as a developer. The negative side of the SDK is that the simulator lacks some features, which is to test an app, developer really need to deploy to hardware which means buying an iPhone and then go through the deployment process, which may delay testing.

The attraction of iPhone to developers

For developers, iPhone has a lot of things that is not present in other phones; with the release of the SDK it was apparent that Apple had compressed an entire computer into a phone. Developers had the wealth of the innovative Cocoa frameworks to build upon and what's more, the barrier to entry was low - the SDK is free to download and a certificate only worth $99 a year. When compared to the number of handsets and the cost of development kits for other phones and PDAs, developers may tend to think the iPhone is an obvious choice.


OS Overview

Android was originated by a group of companies known as the Open Handset Alliance, led by Google. It is an open-source software stack for mobile devices, and a corresponding open-source project. It is the first complete, open and free mobile platform. The main rationale behind keeping this platform open-source was to make sure that there is no central point of failure and that there is no monopoly by the existing industry player to restrict or to control the innovations of the other.

The Android operating system software stack consists of java applications running on Java using Java core libraries. Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model.

The developers of the Android application can use comprehensive software development kits with the use of various tools. Android is shipped with a set of core applications including email client, calendar, browser etc. The applications are written in Java programming language. For all applications, a set of services and systems are provided which includes views (used to build an application), content providers (enables application to access data from other applications), Resource Manager (providing access to other resources), Notification Manager (enables applications to display notifications in the status bar), Activity Manager (manages the lifecycle of the application).

The current version of Android is 2.2 ('Froyo'). It was released in September 2010. This version has new user features, security features, new media framework and new developer APIs. Now days, the Android OS is used in tablet PCs, netbooks and even in some electronic devices.


The android is based on an open source platform which relies on tried and true standards which the developers are familiar with. As there are no registration fees involved the entry barrier is not at all costly for the developers.

To become a developer for Android, a potential developer must download the Android SDK i.e the developer Toolkit. The toolkit is freely downloadable from the android web-site. The development is java based and so the developer would need a java development environment like JDK or Eclipse. Eclipse is needed in case development is to be done using ADT plug-in. Few steps to be considered while installing the Toolkit are:

Ensure that the system requirements are met

Download and install the SDK starter package

Install the ADT plug-in for Eclipse -Add additional Android platforms as required for example Android 1.6 or Android 2.2

The development of an application will involve coding the application, testing it and deploying it in the development environment. There are various resources like technical articles, tutorials, best practices and sample codes to help the developers. There are numerous developer communities as well for the android developers.

The next logical step after developing an application on Android is to publish and distribute the application. Publishing an application is basically making the application presentable and available for the end users on the mobiles. An economical cost structure is available for publishing applications on a third party distribution like 'Android Markets'. However, the developers can distribute and monetize their applications using independent channels as well.

There are certain mandatory steps required for publishing an application. These include: -Applications should be digitally signed for the system to permit the developer to install their applications -Before releasing it to the end users, the developers should user private keys for signing the applications -In case the developers want paid applications, the third party's offer licensing services which would enforce licensing policies on the end users -Once the application is extensively tested on the developer's device, versioned and digitally signed, it is ready for being published -Later the developer can use any of 'Markets' to register and upload the applications which would be then ready to be installed on Android powered devices .

Android Developer Tools

As described in the previous section, the easiest way to become an Android developer is to download the plugin for Eclipse. Once you have the plugin setup on your computer, you can start coding immediately. Android has its own tutorials online to get its users started. One of the best aspects of the Eclipse plugin is that it allows one to create a virtual Android phone on one's computer to test the developed software. The other (not recommended) way to debug an Android application is to run it on a physical Android device (such as one's phone). Eclipse is the preferred development tool.

Android can be used with other IDE's as well. One could use IntelliJ, Netbeans, or another IDE. The developer would still need to setup the SDK accordingly, but it would still work. Text editors are also allowed, but naturally come with less features than an IDE. The reason why these development applications are less preferred than Eclipse is because the relevant Android plugin does not interact with any IDE in the same seamless manner that it does with Eclipse [1].

Android Developer Community Structure

Android is open platform for the application developers side as well. It is possible to become a developer for Android based application without much expertise. Accordingly, the developer community is vast in sense of technical skill set range, geography and organization. The community consists of naïve developers whose technical know-how is completely zero to professionals who work for organizations targeted to develop android applications. Developers and organizations from as many as 29 countries sell their applications on android on the android market. With android applications costing a maximum of couple of hundred dollars for each user, the application market is very lucrative for the organizations as well.

The android developer community can be categorized broadly as follows:

Device makers

Individual developers

Existing web-application developers

Third party application developers

'Developers' using app inventor

First category is that of the device makers themselves. Official releases from HTC, Google, Motorola, Dell, T-Mobile and others are bundled with the smart phones themselves. These firms include more and more services and features in the basic device itself with every release. Thus more 'applications' are provided to the users by these device manufacturers themselves.

Next category consists of individuals who build and sell their applications on android markets by themselves. Android categorizes these application developers as 'beginners' and 'developers'. Developers are the ones who have written and uploaded android applications. This category of developers has various technical blogs and development tools available to aid building applications.

In third category, we have host of existing organizations like Facebook, Twitter, YouTube as well as Google among others who write applications analogous to their Internet applications to be better compatible with the Android phones in particular and smart phones in general. More and more applications are getting smart phone compatible and many of the existing websites release their services from the smart phones including android based phones.

The fourth category of android application developers is that of various third party organizations which write applications for smart phones. These start-ups and established firms are dedicated to writing smart phone applications and observe tough competition from the official releasers themselves. [Ref:] RoadSync, Where, Better POI, Layar, Touchdown, Sherpa, ContactsCalendarSync, Better POI are some of the third party applications.

Lastly, there is a category for non-coding developers. These could be termed as individual designers who use tools to develop applications. The technical know-how of these designers is very low. They design the way their application should look and use various built-in blocks to detail how their app should look and work. There are various SMS, GPS and website communication based blocks among others available for use by these designers. [] Apart from app inventor offered by android, there are various other firms like Simplikate, Mutualmobile and MobileAppLoad which provide assistance and tools for this category of developers.

Android Developer Challenges

Multiple Versions

Currently, Android (APIs) are available in 6 different versions and there are some more to come. Each of these versions has/will have their own version of Android SDK. Identifying the version for which the development of an application to be done is an important decision factor before starting the actual development. As there are various versions available, a developer has to master all of these versions. The challenge in building application that works well on all different versions is one of the major issues with Android. [8] Getting accommodated to new SDK environment (coming up with each new version of Android) is also a problem for a developer. Having multiple versions often leads to compatibility issues.

Compatibility Issues

Building an application which targets all the available versions is a costly practice from the point view of a developer. This leads to a situation where developer decides target version of the Android (based on demand from that version) and builds an application which caters to that version only not catering to other versions. Thus, these applications won't run on handsets using Android version different than the target version. This will seriously affect the 'Application demand' from Android Market and eventually the developers (less demand and hence less revenue for developers).

Multiple Hardware Configurations

As more and more handsets start running on Android the fragmentation in both software and hardware configurations would increase. The different in hardware specifications between devices is so vast that a developer has to think of each platform separately while building an application (non-standard graphic drivers, non-standard commands for triggering standard functions, keyboard differences, UI differences etc.). This would leads to a situation where developers spend their all energy developing multiple versions of an application (running on various hardware platforms/devices) rather than developing new and innovative applications (again affecting the demand for an Android application). For Android developers some sense of stability is needed in order give them enough time to produce applications that showcase the platform's capabilities. [9]

One solution to this problem is to come up with the standards for devices using the Android OS. But, setting up standards for a wide array of devices would be a challenge for Google and it might also affect their open-source policy.

Google Checkout

Google accepts payment (for registration and application download) only through Google Checkout which is not available in many countries (currently it is available only in 29 countries as on 30th September 2010). Developers are not allowed to sell their applications from countries where Google Checkout is not available. There have been efforts from Google to make sure that developer from as many countries as possible should be able to offer priced applications, but the exact timeline for this to be implemented depends on merchant support and is currently unknown.

As an alternate solution, Google could make Android applications available through third party vendors such as Amazon. Amazon has plenty of payment options available to appeal to buyers and Amazon is available in even those countries where Google checkout is not available (eventually all this would lead to increase in demand)

Technical Support

Android doesn't have a good Technical Support facility for the developers. Only, support available is through the web-based forum. This lack of support mechanisms mars the productivity and efficiency of developers.

Since Android is an open source OS, there are certain issues with the security of applications (particularly, the applications are susceptible to malware attacks). A developer has to be cautious of these security issues while developing an application. A recent study by Coverity has identified 88 high risk security bugs in Android 2.2. Google is planning over-the-air fixes for these bugs that will be delivered by January at the latest. [10]

Developer opinions on Android

Currently, developers can sell their applications in as many as 32 countries and android is working on increasing this and this suggests a potential scope for progress for the developer []

Application development, though in Java, is simplified using many tools and so the developers have wide range of skill sets. Thus people with ideas are not restricted by limited technical knowledge

The motivation to developers comes from having innovative ideas and having a direct access to the market

Sustenance is difficult for the developers as they do not have patent protection. A popular or superior innovation in terms of idea can be easily copied and at times even adopted by the device makers to bundle in their next releases

The official releases from the device makers kind of 'fill in the gaps' of their default applications and provide these applications out of the box for the users. Thus the developers are not protected from copyrights

Increasing number of malware and Trojan horse applications make 'building trust among users' a difficult task for genuine developers. Hence it becomes a kind of a de-motivating factor for the developers

Thus, though offered immense help in terms of technical blogs and resources, the developers face challenges like proving their genuineness and protection from their idea being hijacked.


Android and iOS Application Market Place

Relative Size and Traffic

Both Android and iOS have large application market places. iOS has more applications with greater than 300,000 available between the iPad and the iPhone and over seven billion total downloads. Android has greater than 180,000 applications, with over two billion downloads [2]. In the case of Android, their application market place is currently experiencing a period of high growth. The figure (supplied by AndroLib) below shows the total number of Android applications available in the marketplace over time over the last 18 months.

Application Types

As both Apple and Android have enormous application totals, it is critical that both platforms organize and categorize their applications effectively so end users can download the application they want with ease. Apple currently uses over 20 categories to help organize their applications. These range from typical categories like Games to more surprising categories like photography [11]. On the other hand, Android categorizes their applications by first splitting them up between applications and games. From there, one can peruse many subcategories within each main genre (i.e. strategy or reference) [2]. In addition to subcategories, both platforms will also give the option of organizing based on whether or not the application is free to download.

Portability of Android and iOS across platforms

Android is an open system. Android applications are not restricted to any particular device platform and can be run not only on smart-phones (having Android OS) but also on an array of devices such as Tablet PCs (ex: the Dell Streak), TVs and home phone systems (having Android OS).  According to Google, Android developers need to build applications only once and these applications will be supported by all devices using Android OS [9]. The Android operating system runs on many different phone models ranging from super high-end models to the more basic smart-phones and also on laptops, tablet PCs and palmtops thus providing portability to Android Applications.

The following are the examples of devices using Android:

Smart-phones: HTC Aria, HTC Hero, Lenovo LePhone, Motorola DROIDX, Samsung Behold II, Sony Ericson X10 mini etc.

Tablet Computers: Dell Streak, Lenovo LePad, ViewSonic GTablet, Samsung Galaxy Tab, Toshiba Folio 100

E-Reader Devices: Barnes & Noble Nook, Entourage eDGe

Other devices: Philips GoGear Connect (MP3 player)

On the other hand, iPhone is a closed proprietary system. It does not provide any portability for its applications. The applications developed for iPhone can run only on iPhone and now on iPad.

Application Pricing

Android and iOS offer both free and paid-for applications in their respective marketplaces. That being said, Android has the highest percentage of free applications of any smartphone platform [10].

Based on the above diagram, it is clear that Android dominates in the free application department. One of the reasons this occurs is that it is easier to acquire the tools to become an Android developer than an iOS equivalent[10].

With regards to paid for applications, iOS is the leader. iOS currently has more active devices than Android does, and this aspect attracts developers to the larger market. iOS generally has higher priced applications than Android as evidenced by the diagram below [10]. Both The average Android application costs only $3.29, while the average iOS application is greater than $4.00 for both the iPhone and iPad.