I don't have to tell you that there are multiple mobile platforms out there, such as Symbian, Blackberry, iPhone, Android, Windows Mobile, BREW, webOS, Limo, Bada, and others. As a mobile applications developer, one should try to cover as many platforms as possible. Developing on these platforms requires knowledge of Java, C++, .NET, Objective-C, clearly too many languages. As if this would not be enough, there is the fragmentation issue within each platform. So, what can one do to alleviate these problems? Fortunately, there are some tools that mitigate this issue by allowing to design/code once, and port to different platforms afterwards. I am just going to mention some of them, leaving up to you to go and further investigate if you deem necessary. A quick note: when HTML is mentioned, JavaScript and CSS are included by default.
Airplay allows you to code in Visual C++ and build for x86 and ARM compilers, thus building your application as an "OS-agnostic binary file that contains native CPU instructions". The platforms supported are iPhone, Android, Symbian, Windows Mobile, and BREW.
Alchemo is useful if you have a Java ME application that has to be ported to other platforms such as Android, BREW, iPhone, and Windows Mobile.
PhoneGap is an open source tool for web developers that want to take advantage of features such as location, accelerometer, etc, and still write applications using HTML. The platforms supported are iPhone, Android, Blackberry, Palm, and Windows Mobile.
With
Pyxis Mobile, you can take advantage of their
Application Studio and configure your application to run on Blackberry, Windows Mobile, and iPhone platforms. The platform offers support for connectivity to enterprise data sources.
Rhodes is an open source framework where you can build native applications (despite the use of HTML or Ruby for development) that run on the iPhone, Windows Mobile, Blackberry, Symbian, and Android.
Smartface Designer allows you to design you application using the tool and deploy it to Blackberry, Symbian, and J2ME. You can drag-and-drop existing components when using the designer tool, thus avoiding writing code.
Sybase Unwired Platform follows the same line of designing your applications once, and deploy it on several mobile platforms such as Windows Mobile, Windows 32 (Laptops/Tablets), iPhone, and Blackberry. The platforms is geared towards enterprise, offering integration with Sybase, Oracle, IBM, and Microsoft based databases, SAP, Remedy, etc enterprise applications, and Web Services.
Titanium Mobile uses Web Technologies (such as HTML, JavaScript, etc) to build native applications for the iPhone and Android platforms.
Voyager allows you to code in your favorite development language (Java, .NET languages, C++), and deploy it on various platforms such as Android, JavaFX, Windows Mobile, Java ME, Linux, Blackberry, Symbian, BREW, iPhone, with future support for Real-Time OSs. This is the platform that covers most of the existing mobile platforms, and allows for enterprise integration.
Below is a table summarizing the info supplied above (last updated on: July 17, 2010):
| Airplay | Alchemo | PhoneGap | Pyxis Mobile App Studio | Rhodes | Smartface Designer | Sybase Unwired Platform | Titanium Mobile | Voyager |
Platforms Supported |
Android | X | X | X |
| X |
|
| X | X |
Java FX |
|
|
|
|
|
|
|
| X |
Windows Mobile | X | X | X | X | X |
| X |
| X |
Linux |
|
|
|
|
|
|
|
| X |
Blackberry |
|
| X | X | X | X | X |
| X |
Symbian | X |
| X |
| X | X |
|
| X |
BREW | X | X |
|
|
|
|
|
| X |
iPhone | X | X | X | X | X |
| X | X | X |
Java ME |
|
|
|
|
| X |
|
| X |
Development Languages |
C++ | X |
|
|
|
|
|
|
| X |
Java ME |
| X |
|
|
|
|
|
|
|
Java |
|
|
|
|
|
|
|
| X |
.NET |
|
|
|
|
|
|
|
| X |
HTML |
|
| X |
| X |
|
| X |
|
Own Visual Language |
|
|
| X |
| X | X |
|
|
Other Properties |
Open Source |
|
| X |
| X |
|
|
|
|
Enterprise Integration |
|
|
| X |
|
| X |
| X |
Free | X (only for iPhone) |
| X |
| X (if using GPL) |
|
|
|
|
Please drop me a message if you know of any other cross-platform tool(s) worth mentioning.