hen choosing the technology and target platform for your mobile project or application, you will find several possibilities. There are several kinds of mobile phone platforms available and most have somewhat different characteristics. For example, Windows Mobile development is different from iPhone development, even though the target markets are quite the similar. Similarly, MIDP and Symbian development differ, even though the actual target device might be the same. With so many choices?and the introduction of the iPhone and Android during the past year or so adding to them?your best bet is to develop something that runs on multiple platforms.
Here are some of the questions you need to ask before you start the development:
- To whom are you targeting the application? Is it a consumer application or a corporate application?
- Is your project a game or an application? If a game, you should figure out which types of people will play it and what kind of devices they have.
- What kind of requirements do you have for the technology? Symbian applications may be your only choice if your users already have Symbian phones and don’t want to buy new ones.
- How quickly do you need the application or a prototype?
- How much money can you spend on the development? After all, almost always the most important factor is money.
With so many choices and considerations to address, this article provides a high-level comparison of the most used platforms and to help you determine which best fits your purposes.
Oh, the Possibilities
Listing all the mobile development technologies available is beyond the scope of this article, but these are the most commonly used options.
SMS and MMS
SMS (Short Message Service) and MMS (Multimedia Service) use the basic functionalities of the mobile phone to enable users to send text and multimedia content, respectively. Every phone (these days) should have SMS/MMS functionalities and people generally are well aware of how to use them. Developing SMS/MMS applications is a lot different from all the other technologies that are described here, since SMS/MMS development takes place only on the server side. The simplest way to make an SMS application (for example, one that receives a message and sends a joke) is to select a mobile service provider and write a simple PHP script that communicates with the provider’s messaging interface.
Mobile Information Device Profile (MIDP) 1.0, a Java runtime environment for mobile devices such as cell phones and PDAs, sparked the mobile Java revolution. It turned out to be a little limited, however, because its applications didn’t really deliver “write once, run anywhere” portability. This was mostly because mobile phone manufacturers didn’t perform their MIDP implementations exactly the same way, and many even favored proprietary APIs. This made writing even a simple application that would work on all MIDP 1.0 devices extremely difficult. MIDP 2.0 fixed many of these problems with new features including an enhanced user interface, multimedia and game functionality, greater connectivity, over-the-air (OTA) provisioning, and end-to-end security.
Symbian is an operating system for smart phones that has become quite popular. Nokia in particular has been using it heavily. Symbian has a number of user interface platforms, such as Nokia’s Series 40, Series 60, and Series 80. Developing with Symbian is a lot more complicated than developing with MIDP, but Symbian applications are more reliable because they are targeted and designed for a particular UI and platform. Symbian development is done mainly in C++.
Windows Mobile is Microsoft’s operating system for mobile devices such as PDAs and mobile phones. ‘Pocket PC’ is no longer in use; devices without a phone are called Windows Mobile Classic devices. Windows Mobile resembles other Windows operating systems, which makes it quite easy for the end user to learn. Thousands of applications are available for Windows Mobile, such as word processing, personal information management, e-mail, etc. The typical development languages for Windows Mobile are Visual C++, .NET, and Java.
Since acquiring Palm OS, ACCESS has been offering the ACCESS Platforms, which offer development environments with Garnet OS (an extended version of the previous Palm OS), Web 2.0, and Java. ACCESS is a Linux platform that operates in a similar way as Symbian: it licences the platform to mobile device manufacturers. This article discusses only the Garnet OS. ACCESS development typically is done in Java.
Apple’s launch of the iPhone has been much discussed in the media, mostly because of its features (and lacking features)and price tag. Still, it has sold reasonably well and its users seem to appreciate it as not just a phone, but also as a mobile Internet device. The recently launched iPhone SDK lets you develop applications to run in the device, as well as web applications that are designed for the iPhone. The iPhone SDK development is done with the Cocoa Touch framework and Objective-C.
Although Google gets nearly all the credit, a group of more than 30 technology and mobile companies developed the Android mobile platform. Android is an open and free software stack for mobile devices that includes an operating system, middleware, and key applications. The first Android devices will probably be released in the first half of 2008. The development language for Android is Java.
The Budget Factor
Money has a huge effect on the scope of your mobile development project and on which platform you choose. Symbian is probably the most time-consuming platform and thus the most expensive. On the other hand, MIDP, Windows Mobile (with Visual Basic), and even SMS can be quite fast and cheap. Table 1 summarizes some of the budgetary characteristics of each platform.
|Table 1. Budgetary Characteristics of Mobile Platforms: Money has a huge effect on the scope of your mobile development project and on which platform you choose.|
|SMS and MMS||You can use standard web development languages such as Java or PHP, which you either already knowor you can learn. You also need web space for your scripts, and you need a contract with your local mobile service provider (if it offers third-party APIs).|
|MIDP||Development tools are free (although commercial tools are available), which makes development cheaper. MIDP APIs are quite easy, and a small team can create a complete application.|
|Symbian||Symbian probably is the most difficult to master, and thus the most expensive, but it also is rewarding because the software is reliable and Symbian applications enjoy a good reputation among users. This means that people are willing to pay more for a Symbian application than for a MIDP application.|
|Windows Mobile||Windows Mobile development is pretty straightforward, if you’re familiar with Microsoft’s technologies and fluent with Visual C++.|
|ACCESS||You can download free development tools from ACCESS and buy support for a small fee. Of course, you will need to allot the time to learn the tools, but Garnet OS development is about as demanding as Windows Mobile development.|
|iPhone||You can get the iPhone SDK for free from Apple’s website. If you want to test your application in a real device, you have to apply to the iPhone Developer Program, which will cost you between $99 and $299. Development is done with Objective-C and thus might take a while to master.|
|Android||You can get the development SDK for free, and since all applications are treated equally, you don’t have to pay extra to be able to sell your applications.|
Table 2 describes the development times of the different mobile development technologies briefly and then categorizes them into three groups: fast, slowish, and slow. As you can understand, a lot depends on the experience of the development team.
|Table 2. Development Time for Mobile Platforms: Different mobile development technologies require different development times.|
|Mobile Technology||Development Time|
|SMS and MMS||Getting the contracts with your mobile provider can take some time, but the development itself should be fast (if you’re fluent with web development). Fast|
|MIDP||Prototypes can be made very quickly. A simple application can be designed, implemented, and tested in a month. Fast|
|Symbian||Symbian is the most time-consuming choice. You most likely need a team of people with experience in Symbian development. Slow|
|Windows Mobile||Visual Basic development is quite fast, even for the beginner, but C++ development takes time. You can also develop with Java, but there are still certain barriers to running Java applications easily on Windows Mobile devices. Slowish|
|Garnet OS||Developing with C is slow, compared with MIDP. The other options are likely faster. Slow|
|iPhone||Developing with Objective-C is more difficult than, for example, with MIDP, but the Cocoa Touch framework makes development relatively easy. Slowish|
|Android||Android claims to be a fast development environment and since it is Java, it most likely is easier to learn than, for example, Symbian. Fast|
The Choice Is Yours (Mostly)
This article explored different platform choices for mobile development projects. It introduced some of the most common platforms and their characteristics, and analysed them roughly from the budget and development time points of view. Some technologies are very easy to learn and work with, but they have their downsides. The ones that have more credibility in the market, such as Symbian and Windows Mobile, are harder to master and require experienced developers. On the other hand, the price of the applications is higher.