Smartphone Development

Mark Holm

Computer Science / Software Engineering

UW-Platteville

Abstract

Since Apple debuted the App Store for the iPhone in July 2008, the smartphone market has changed dramatically. Smartphones have become an environment where a developer can design an application and bring it to market without any knowledge of billing systems or marketing. Since the App Store, consumers have been downloading millions of applications straight to their phone using a very simple interface. With the success of the App Store, other smartphone manufacturers have released their own application stores to compete with Apple.While Apple’s App Store has over 76,000 applications, Google’s Android Market comes in second place with 10,000 applications. Developing for the iPhone is done in objective-c, which is also the language used to develop for Apple’s Mac OS X. Developing for Google’s Android OS is done in java, making it universal and easy to develop applications for. [2]

What is a smartphone exactly?

A smartphone is defined as a mobile phone offering advanced capabilities, often with PC like functioning. The term smartphone is relative to the current time and existing technology that exists. A Motorola Razr would be classified as a smartphone back in 1999, only ten years ago, but the thought of a Razr being a smartphone today is almost laughable. This is because when people today think of a smartphone they think of an iPhone, blackberry, or android phone. All these phones have very advanced features that somewhat eliminate the need for a computer. The phones also have functionality of a digital music player, gaming device, global positioning system, digital camera, and of course a mobile phone. A Motorola Razr can take pictures, play simple games, and make calls. These functions would be great ten years ago, where mobile phones would simply make calls only, but the Razr lacks features that current users need to be classified a smartphone.

Current smartphones can perform about 70-80% of an average person’s tasks without a computer. This has inspired a new term for business travelers called “laptopless”, which refers to a person not needing a laptop because they have their smartphone. It is no mistake that smartphones perform tasks that usually needed to be done on a computer; it is exactly what they were designed for by definition of a smartphone. Smartphones will become more like a computer until they are essentially a mobile computer.

Smartphone exclusive contracts to carriers

Smartphones are the new hot devices that everyone wants but when one tries to decide what smartphone they want, they often get tangled up in the issue of exclusive contracts to each market and each carrier, as seen in table 1. For instance in the United States, the iPhone is only offered if the consumer is willing to be a customer of AT&T. If the consumer wants the iPhone but not on AT&T’s network, they are out of luck and must find a different smartphone to fit on the network of their choice. So sometimes it isn’t the smartphone that gets chosen, but the network. This is a very important issue to developers of smartphone applications because their potential customers are restricted by these exclusive contacts with each carrier. Exclusive contracts limit the potential customer base of an application to the share of subscribers the carrier has and also the percentage of those carriers subscribers that have the smartphone you wish to develop on, as seen in figure 2. In some instances the phone may not even be offered by any carrier in that market, due to the phone manufacturer not having a contract with a local carrier at all. A good example of this would be the HTC Magic in Russia. The HTC Magic, an Android OS phone, has been offered in the United States for months now, but the Russian people have had no way of obtaining the phone through a carrier as of yet. So in terms of a developer, it is important to look at every aspect of a smartphone before they decide to begin developing applications for the phone. A developer needs to know how many people his product can potentially reach in the world and in his local market in order to successfully develop an application to meet his potential customer’s needs. Exclusive contracts make application development for smartphones harder to decide on than just picking the easiest platform to develop for.

Apple iPhone / AT&T exclusive
HTC G1 / T-Mobile exclusive
HTC myTouch 3g / T-Mobile exclusive
Palm Pre / Sprint exclusive
Motorola Droid / Verizon Wireless exclusive
Blackberry Storm / Verizon Wireless exclusive
Other Blackberry’s / Some exclusive, some available on all carriers
Various Windows Mobile Phones / Some exclusive, some available on all carriers
Various Nokia Phones / Available on all carriers (non-subsidized)

Table 1: Popular smartphones and their exclusive US carrier

Figure 1: Carrier marketshare in the United States

Smartphone Operating Systems

Since all sorts of different companies decided to get into the smartphone market, there are now a number of different operating systems. Each of these operating systems is completely different from the others and an application cannot simply be ported from one mobile platform to another without redesigning the entire application from the ground up. A good example of this is the facebook application for the iPhone. The facebook application for the iPhone has existed since July 2008, but the facebook application for android phones has only existed since September 2009. Facebook already developed an application for blackberries and the iPhone, and didn’t really want to devote more resources into developing another application for the android. It may sounds stupid for a company such as facebook to limit itself by not developing application for each platform, but it can cost a lot of money and time for a company to develop their application on multiple different operating systems. [5]

When it comes to the United States market for smartphones, there are only a handful of phones and operating systems that are worth mentioning. The most popular smartphone operating systems currently in the United States are iPhone OS, Android OS, and the Blackberry OS. The blackberry OS is not very open to developers to just go ahead and develop for the operating system and distribute to everyone that has a blackberry. Not to mention that different blackberry phones have different versions of the blackberry OS, with different hardware on each blackberry to interface with the user. This can be quite difficult designing an application for every blackberry and in some case requires assistance from blackberry’s manufacturer, Research in Motion. As for the iPhone OS and Android OS, they both are operating systems that are open to developers to create applications for with little adjustment for each piece of hardware that the application will run on.

Apple iPhone / iPhone OS
HTC G1 / Google’s Android OS
HTC myTouch 3g / Google’s Android OS
Motorola Droid / Google’s Android OS
Palm Pre / webOS
Blackberry Storm / Blackberry OS
Other Blackberry’s / Blackberry OS
Various Windows Mobile Phones / Windows Mobile
Various Nokia Phones / Symbian OS

Table2: Popular smartphones and their operating system

iPhone vs. Android

The iPhone is the most talked about smartphone in the United States, and that is because it has revolutionized the smartphone market completely. A year after the iPhone’s debut, Apple decided to launch the iPhone App Store, which let users find and download third party applications directly from their iPhone. The App Store again revolutionized the smartphone market completely and made the iPhone into the successful product we all know today. Since the iPhone’s success, there have been a number of companies to try to imitate the iPhone to hopefully snag some of the profits Apple has been getting from the iPhone’s success, but most of them have disappeared without creating a dent in the iPhone. The biggest contender to possibly take on the iPhone these days is not a phone in fact, but an operating system. Google’s Android operating system can be put on a variety of specially designed phones from different manufacturers with different pieces of hardware yet on different networks and still all use the same operating system with the same android application marketplace. The android operating system is only currently on a few phones, but the potential is far greater than what the iPhone will ever reach. Not everyone can possibly have the same phone, but everyone could possibly have the same operating system.

Development for iPhone OS

To develop an application for the iPhone operating system, one must use the iPhone SDK, also referred to as Xcode. In order to use the iPhone SDK effectively, a developer must have a Mac computer or at least a computer running Leopard or Snow Leopard operating systems. The software development kit itself is free but the ability to publish application on the Apple App Store cost $99. With publishing to the Apple App Store, Apple needs to review an application before it is available to consumers via the app store. Apple can take weeks or even months to review an application and decide if they will publish it to the App Store. An application can also be rejected for a number of reasons, like accessing of the phone’s core functions like calling someone. All programming for an iPhone application is done in the Objective C language, which has a major disadvantage of having no garbage collection. All of application development for the Mac computers is also done with Objective C, so developing for the computer operating system and the mobile phone operating system is somewhat similar. A complaint about developing for the iPhone OS is that there is a rather small API to use Apple’s integrated hardware other abilities. Apple did this intentionally to try to keep applications from doing things Apple didn’t want them to do, and then end up rejecting the application because of such. There is also a procedure to remove all the restrictions Apple places on an iPhone of iPod called jail breaking, and doing so also allows for developers to access all the iPhone functions that were not available to developers without jail breaking the phone. Developing for a jail broken iPhone has a much larger API to use all the functions of the iPhone without restriction, and since Apple cannot control jail broken iPhones, there is also jail broken iPhone App Stores. These stores do not require approval of any kind from Apple to be available to the public, but rather just the want to make them available to the public. Developing for a jail broken iPhone is very similar to that of the iPhone, in which you need a computer running the Leopard or Snow Leopard operating system. Developing for a jail broken iPhone isn’t necessary a good choice when a developer wants to charge for their application, because most people that jailbreak their iPhone did it to avoid paying for applications in the first place, so the chance they will pay for your application is very slim. Also only a small number on iPhone and iPod users actually jailbreak their devices, so developing for the jail broken community is limiting your application to only a small number of users. [6]

Development for the iPhone OS – the Good

The iPhone has the most popular App Store with over 2 billion downloads to date. This makes the iPhone the hot place to develop an application and if it gets noticed, a lot of money can be made. When compared to phones that use the android OS, the iPhone is the more popular smartphone on the market with about 14% of worldwide smartphone market share. A developer can create an application for all 3 iPhones and all 3 iPod Touches easily. Since all iPhones and iPod touches share key features like the same screen size and same touch screen interface developing for one of the iPhone will mean it will work on all of the iPhones and iPod Touches. Apple also designed the App Store to be built in to every iPhone, very easy to use, and to take care of all the billing. This means that an application developer for the iPhone has a potential customer base of every single person that owns an iPhone and does not have to worry about how they will bill the customer.

Development for the iPhone OS – the Bad

Developing for the iPhone can be a very good experience, but there are some downsides to it. As previously mentioned, Apple needs to approve the applications before it publishes them to the App Store. This procedure is to protect iPhone users from anything harmful for their phone, but Apple has been known to use it for any application they see as somewhat of a threat to the core functions or Apple applications. Obtaining the ability to publish applications costs $99; this can be quite costly if you’re planning on publishing a free application. The good thing about the $99 is that a developer can then publish any number of applications to the iPhone with that onetime fee. As said before, developing for the iPhone requires you use the limited API that Apple instructs developers to use, giving them little use of the phone’s functions and hardware. The worst part about developing for the iPhone is the most obvious; there are over 85,000 applications in the App Store. It is truly a popularity contest in order to get an application noticed. Only the most downloaded applications of each category will be noticed by the general public, the others will most likely never be noticed. Also a large majority of applications on the iPhone are useless applications, where there is no real purpose for them. A good example of a useless application would be the application called “I Am Rich”, where it costs one thousand dollars to download. When launched, the application does nothing but spin a gem around. There are many other applications like this where there is no point in using the application and most of them are for free. The App Store has had over 2 billion downloads, but unfortunately for developers most downloads are of free applications. This means that the most popular applications are free and that means it is harder to make money of developing the application. If a developer does decide to set a price for his application, he can set it at any price he sees fit, but Apple will take 30% of that price in each download. Also jail broken users have a way of getting around paying for the applications that have a price on them, so there will be a number of users stealing your application if you decide to set a price on it. Another bad part about developing for the iPhone is that you do need a computer running the Leopard or Snow Leopard operating system. This can be very restrictive for some developers that do not want to develop on a Mac OS. Along with being forced to develop on a Mac OS, a developer has to develop in Objective C language, which not a universally know programming language. A big problem with the iPhone is that it cannot run applications in the background, so when someone exits an application to answer a call, check an email, or switch songs, the app has been closed out. This can be very bad if an application requires constant connection with a database in the cloud in order to function correctly, example a GPS application. Lastly developing for the iPhone can be a bad experience when Apple decides to update the iPhone operating system. When Apple decides to update the iPhone operating system applications that ran perfectly on the previous operating system can be quite unstable and not work correctly. Even worse than not working correctly, an application can become obsolete. Apple adds new features and built in programs with each major iPhone OS upgrade and this has been known to interfere with existing 3rd party applications. Naturally the 3rd party application is then removed from the App Store or just completely faded out of popularity. [4]

Development for the Android OS

To develop for the android operating system, a developer needs the android software development kit. The software development kit is available on Windows, Linux, or Mac operating systems for free. All programming for android applications is done in the java programming language, which is a very universal language that has been widely adopted. A developer can use any Java based developer environment to create android applications, but most popular is Eclipse. Eclipse has many android plugins in order to develop, test, and simulate android applications to perfect an android application without running it on an actual android phone. Eclipse can also export applications to an actual android phone for use in testing and debugging. [1]

Development for the Android OS – the Good

Android application development is all in java, which makes it very versatile for developers. The android OS has a very large and extensive API for developers to use, so there are virtually no limitations set by the operating system to restrict an application from doing anything it wants. The application store on the android OS is called “The Market” and it is still quite popular. It may not be as popular as the Apple App Store, but it is still rather large with over 10,000 applications available. The android operating system also exists on a number phones and will exist on many more phone in the future. These phones will be on every single wireless carrier, in all different varieties. This means a consumer can pick an android phone whether they want to use AT&T’s network, Verizon’s network, Sprint’s network, or T-Mobile’s network. This somewhat solves the issue of exclusive contracts, by offering a very similar experience of operating systems on different phones from different manufacturers. Android being open source, so carriers or phone manufacturers can customize the android operating system for their own needs and restrictions. Android phones only have about 3% of the entire smartphone market share, but this is soon expected to change as new phones with the android operating system are available, like the Motorola Droid. To publish applications on the android market, there is only a $25 fee to publish an unlimited number of applications for a developer, which is a reasonable fee for anyone. When a developer chooses to publish an application on the android market, there is no approval needed for people to start downloading that application. This is great for developers, since they are pretty much free to develop whatever they want without restrictions. The android market is also built into every android phone, very easy to use, and Google takes care of all the billing of paid applications. Unlike the iPhone, the android OS can run applications in the background, making it ideal for applications that require constant processing even if there is another application that is currently being interacted with the user. Lastly android is fully backwards compatible with previous versions of android. This means that when a new version on the android OS comes out, all applications that were based on the previous version of the OS will still work with the new OS as well. Also with an update, android does not include additional applications built into the operating system, so no third party applications become obsolete through an OS update. [6]