when 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.
MIDP
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 OS
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
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.
ACCESS Platforms
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.
iPhone
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.
Android
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.