Choosing a Mobile Development Platform – Conclusions and Next Steps (Part 6)

This is the final installation in a series of articles which has looked at development on four of the main mobile platforms.

It has shown that a free sign-up may attract those with limited budgets into the Ovi store. This may be dependent on if they can obtain a cheap device. Those wishing to make more complex apps that can be sold at a higher price may be attracted to Blackberry. Developers who intend to create many apps in a short sequence may be inclined to investigate Apples platform, due to it’s pricing strategy and device similarity. The speed of the Android market growth and openness of it’s platform may beckon some developers in its direction.

The main conclusion to draw is that all of the technologies have a comprehensive development platform and an organised way to distribute applications. All of them look like strong contenders which should have the potential for future growth. The main decisions from a programmers perspective may boil down to which device they can access easily and which technologies they already have experience using.

There are many other sources available to help with a decision. This is a list of just a few which I have found useful while creating this series. Good luck.

Links to market research companies who provide statistics for mobile phones:
Distimo
Gartner

Links to the developer areas for each of the companies analysed in this series:
Android
Apple
Blackberry
Nokia SDK
Nokia App WIzard

Don’t forget Windows Mobile. Depending upon when you are reading this it may now be up and functioning in it’s exciting new ‘metro’ form:
Engadget Preview
Windows Phone Dev Centre

Can’t make up your mind? There are technologies which allow developers to publish to multiple platforms. Perhaps one of these would be a good place to start. A list of them is mentioned in the 5th installment of this series “What Languages will I need to Know?”

Choosing a Mobile Development Platform – What Languages will I need to Know? (Part 5)

This is the fifth in a series of posts which aims to provide a guide to choosing an initial mobile development platform. It explores the subject by discussing a series of questions which may be posed by a new developer.

Technologies vary from device to device due to continual device evolution. Despite this, the underlying tools, languages and main APIs generally remain the same on each platform.

Apple iOS

The Apple SDK is based around use use of Objective-C. This is a C based language with no garbage collection also used for Apple desktop programming. It works on a GCC compiler so C++ code can be included, however, all of the GUI components are Objective-C based. OpenGL ES is also supported. There are also various 3rd party applications that allow the developer to create iPhone apps using other languages including Mono, Adobe Flash and Unity3D.

Android

The Android SDK primarily uses Java within the Eclipse IDE. It also supports OpenGL ES. It does have an NDK (Native Development Kit) which supports some C++ but does not provide any support for the STL or C++exceptions. It is not recommended to develop a whole application in C++ but it can be called from the Java code. Again, there are 3rd party tools including Flash and Unity3D.

Nokia Ovi

Nokia Ovi has various platforms on which developers can work. Each of these can be submitted to the Ovi store. These include Qt, a C++ based framework which supports OpenGL. Java MIDP and Flash Lite/Flash are also supported. It also has a Symbian C++ platform but this may not be as suitable for new developers. Additionally, the Ovi store has a non-programming way to make applications using a technology called the ‘Ovi App Wizard’.

Blackberry

The Blackberry SDK is based around Java within the Eclipse IDE or within Microsoft Visual Studio. It also has support for OpenGL ES. There are two types of Java application which can be created. The first uses standard Java for mobile (MIDP). The second uses a special Blackberry version with more specific features called CIDC. There is also a web technologies method of creating applications on the horizon. Flash support is expected imminently.

Choosing a Mobile Development Platform – What are the Setup Costs? (Part 4)

This post is the third in a series of posts which aims to provide a guide to choosing an initial mobile development platform. It explores the subject by discussing a series of questions which may be posed by a new developer.

All of the platforms I am examining have a free SDK but some are restricted to working on a particular desktop OS. This will mean the the cost will be different depending on what hardware you already own. There are some limitations for each platform, for instance, an Apple computer is needed to develop for iOS. Eventually a developer will probably want to have multiple mobile devices for testing, however, for a first app this may not be essential.

Many platforms come with simulators. Do not be tempted to think that you could release something to a mobile application store without having tested it on a device. There may be differences in connection or memory as well as many other things. Simulators are very good for following a few tutorials in order to discover if you enjoy working with a platform. This can be done before making any real investment.

(Please note that the chart above contains an error. Android has only the one $25 fee, no additional fees apply)

This table shows that there is a slight difference in setup prices that may effect the overall cost. Once the cost of the hardware is factored into the equation, it is unlikely that these costs will make a large overall difference. Once thing that might make a difference is choosing a platform with cheaper devices available. That would be more likely to reduce the cost if your starting budget is tight.

Blackberry Device publishing requires the largest initial investment. Their strategy may still yield savings for those who wish to produce multiple applications. Also, the price that the developer can charge for an app appears to be larger for Blackberry. The other stores show similar average app prices, this may indicate that Blackberry has a different target market. The Ovi Store is the only application market with no initial charge, very tempting for those on limited budgets.

(Information Sources – Gartner, Distimo, RIM, Google, Apple and Nokia.)

Choosing a Mobile Development Platform – What is the Distribution Potential? (Part 3)

This post is the third in a series which aims to provide a guide to choosing an initial mobile development platform. The previous installment looked at which platform had the most devices in the wild. This item explores the subject further by discussing distribution potential for these devices.

The ‘Mobile Application Store’ is currently in-vogue for distribution as well as a great tool for developers. The application is submitted to an online market where the user can easily find, download and pay for it. Significant effort is then needed to promote the application.

The table above shows a small subset of indicatory figures. The actual sales can vary significantly. Apps that sell in large volumes and that fail to sell exist in each store. A range of 3rd party stores also thrive and may warrant further investigation. Apple are the only company in this study to tie developers to their own store. Often developers may still be hired to create an app for a third party to release.

The table demonstrates that Apple have the most popular application market but that it also has the highest number of competing applications. The order of platform rankings by downloaded number of applications are exactly the opposite from that of the platforms by number of handsets. These figure do include downloads from non-phone based devices. That may be a reason for the App Store success in this category. The Nokia Ovi Store may currently be lagging behind but it has the largest potential number of supported devices.

(Information Sources – Gartner, Distimo, RIM, Google, Apple and Nokia.)

Choosing a Mobile Development Platform – What are the options? (Part 2)

This post is the second in a series of posts which aims to provide a guide to choosing an initial mobile development platform. It explores the subject by discussing a series of questions which may be posed by a new developer.

It is often a good idea to look at a demand, before you decide to supply. The following chart depicts that there are currently five major mobile platforms. Future predictions should be used with precaution, however, it shows that it is likely that the five platforms that are strong now will remain so for some time. Secondly, the popularity of these devices is is likely to become more evenly distributed than it is now.

Symbian is the most widely owned platform but it also showed to be the slowest growing. The term ‘slowest growing’ is used because the total number of sales of smart-phone sales to end users showed an increase of 48.7 per cent from the first quarter of 2009 to the same in 2010. Predictions of future growth of the market suggest that this may well be the case.

This chart excludes devices not attached to a mobile network. Some platforms include popular devices of this type, such as the Apple iPod Touch. Android is shown to be the fastest growing platform, but all of the established platforms are looking healthy. The windows mobile platform is currently undergoing a large change of technology. Information, about this platform may become outdated quickly. Including it in this series would not represent the platform fairly, so it will be omitted. You can investigate is further at: www.developer.windowsmobile7.com.

(Statistics from Garter – www.gartner.com)

Choosing a Mobile Development Platform – Introduction (Part 1)

I began developing for mobile phones shortly after the release of the iPhone 3G. I had previously looking into porting programs onto various other devices using Flash. Ultimately, there just didn’t seem a way to get the products onto enough devices. When the Apple ‘App Store’ arrived it appeared to be a clear outlet for independent mobile application developers. There are now so many ‘App-Store’ like equivalents many new developer may be confused as to which platform to choose.

I have decided to create a series of posts which aim to gather the relevant information regarding their dilemma into one place. As different circumstances and backgrounds may lead to different decisions I would like to do is provide a straightforward overview. It will concentrate on questions developers may have about mobile application development platforms. This should lead to contained set of information which allows the would-be developer to make an informed decision.

I will try as far as possible to take an objective view. One thing I will mention from experience is that all mobile application stores change their rules and update their technologies on a regular basis. I will not therefore be answering a large theoretical question, just concentrating on a snapshot of September 2010. Finally it should be noted that in order to provide a full picture I will have to examine platforms on which I have not yet developed.

Check back soon for the first article in the series.