Computer Science / Software Engineering uw-platteville



Download 41.48 Kb.
Date21.06.2017
Size41.48 Kb.
#21374
Smartphone Development

Mark Holm

Computer Science / Software Engineering

UW-Platteville

holmm@uwplatt.edu

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

Table 2: 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]

Development for the Android OS – the Bad
Android is not as popular as the iPhone in the United States and international markets. The average consumer knows what an iPhone is, but the average consumer does not know what android is or even an android phone. The first phone to use the android operating system was the HTC G1 or more commonly referred to as the Google phone. The name of the Google phone is not accurate because it is not Google that makes the phone and there is more than one phone now that has Google’s operating system on it. The bad parts are android are actually sometime the same as the good points, in which there is no approval needed for applications to appear on the android market for consumers. This combined with the large and extensive API can create problems for users where application could possibly take control of their phone and download files or even call people from their phonebook without asking the user. As for paid application on the android market, Google takes 30% of the revenue to cover billing fees and some of that even goes to the wireless carrier. The android operating system has also been manipulated in a way to unlock more features and allow access to everything on the phone by the user by “rooting” the phone. When a user roots the phone, they can turn the touch screen into a multitouch interface, similar to the iPhone’s multitouch screen interface. Also rooting the phone has given users the ability to distribute paid applications to other android phones for free. Google reacted to this by not allowing any user who has a rooted phone to download a paid application for the android market at all. This is a good and bad solution since applications could have been downloaded without being charged for them, but at the same time a user with a rooted phone cannot pay for an application even if they want to now. This shrinks the number of possible users that a paid application is even available to in terms of a developer. Lastly developing for the android operating system can be somewhat difficult because each phone has different hardware on which android runs. Different hardware means different capabilities for each phone, but android is trying to make it easy for developers to work with all different phone easily. The issues with different phones are: that some phones have a keyboard when some only have an on screen keyboard, the phones all have different screen sizes which was handled in android SDK 1.6, different processor speeds, and different memory sizes. [6]

Android Developer Challenge
Google currently has a development contest each year where developers can submit their application in a contest where first prize wins $250,000. First, second, and third prizes are awarded in each of the ten application categories in prize amounts of $100,000, $50,000, and $25,000 respectively. Also attendees of developer events will be provided with android smartphones intended for use in developing submissions for the Android Developer Challenge. These phones are for the attendees to keep even after the event. [6]

UW-Platteville
Smartphone have started replacing computers for everyday tasks for the average consumer and that trend will continue until all tasks for an average person can be done on a phone rather than a computer. This is why educational institutions like Stanford have started offering an iPhone development course to teach students how to program an application for the iPhone. There is a very high demand for developers on all mobile platforms right now and supply is low because it is a brand new undefined field in which nobody is formally taught by an educational institution on how to program on a mobile platform. Also being a mobile developer can get you noticed by other companies and looks great on a resume. It would also be great for students to develop for mobile platforms that have very few applications in order for the application to become widely used and known on that mobile platform. For example the Palm Pre only has 41 official applications and 154 unofficial applications, making the total number of applications under 200. This is a very small number of applications and any application would easily get noticed. Students would also be able to release applications to the public that they worked on in class, which can be great for the student to experience the real world market. Also the Android Developer Challenge would be a great place for students to compete against developers across the world for a large cash prize. This would be a great experience for a student to even attend.

Conclusion
Smartphones have recently become a revolutionary device in which people can use for most of everyday computing needs instead of a computer. Future smartphones will imitate all functions of a computer in which a person can do anything they want on a smartphone instead of a computer. A smartphone has already taken the place of a mobile gaming device, digital music player, global positioning system, PDA, phone, and someday soon a laptop. Smartphones are essentially becoming mobile computers with extra features and they will continue to grow because consumers want to be able to carry a computer everywhere they go, but without the hassle of lugging a laptop everywhere.

References

  1. Brian Dipert.  (2009, September). T-Mobile's G1: Google's Android OS emerges. EDN, 54(18), 22.  Retrieved September 29, 2009, from ABI/INFORM Global. (Document ID: 1859381871).

  2. Kushan Mitra.  (2009, September). An application party :Microsoft also joins the application marketplace for mobile products.. Business Today,***[insert pages]***.  Retrieved September 29, 2009, from ABI/INFORM Global. (Document ID: 1860213381).

  3. Sprint Releases Android Dev Tools. (2009, September). Informationweek - Online,***[insert pages]***.  Retrieved September 29, 2009, from ABI/INFORM Global. (Document ID: 1864295851).

  4. Murphy, D.. (2009, September). App store wars. Revolution,54-56.  Retrieved September 29, 2009, from ABI/INFORM Global. (Document ID: 1864104881).

  5. http://www.techcrunch.com/2008/10/22/dont-hold-your-breathe-for-the-facebook-android-app/

  6. http://developer.android.com/guide/tutorials/views/index.html

  7. http://developer.apple.com/iphone/

Directory: ~yangq -> csse411 -> csse411-materials -> f09
csse411-materials -> Multi-Core Software Development with Examples in C++
csse411-materials -> Web Security a Programmer’s Perspective
csse411-materials -> Emotional Annotation of Text David Gallagher
csse411-materials -> Christopher Pinski Department of Computer Science and Software Engineering
csse411-materials -> Security of Mobile Devices Lon Kastenson Abstract
csse411-materials -> Developing for Android Erik Nykl Abstract
csse411-materials -> Spyware, Malware, and Viruses Anthony Bosnak Department of Computer Science & Software Engineering University of Wisconsin – Platteville
csse411-materials -> Personal Computing: Past, Present, and Future Michael Wills
csse411-materials -> Virtual Reality (VR) Kyle Maitland Department of Computer Science University of Wisconsin Platteville
f09 -> Aspect Oriented Software Development James Friedenberger

Download 41.48 Kb.

Share with your friends:




The database is protected by copyright ©ininet.org 2024
send message

    Main page