Tuesday, December 22, 2009

Cross-Platform Mobile Development


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.

Other platforms that may be worth looking into are Dexterra ConcertSpring Wireless, and QuickConnect.

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)






There will be a book that will come out on April of 2010 August 31, 2010 entitled "Pro Smartphone Cross-Platform Development: iPhone, Blackberry, Windows Mobile and Android Development and Distribution", by Sarah Allen and Vidal Graupera, and which should offer valuable resource for anyone involved with cross-platform development.

Please drop me a message if you know of any other cross-platform tool(s) worth mentioning.

5 comments:

Gary said...

I have used Smartface Designer to develop custom apps for media companies, it really cuts cost of development, no-coding!

Mihai Fonoage said...

Thanks Gary for the feedback. I'd love to get more feedback from developers who actually used these frameworks.

Alex Jonsson said...

Dear Mihai,

Enjoyed your write-up on cross-platform for mobile. I wanted to contribute to your research by adding a few more to your list. Some are released as Open Source, while others partly or entirely as closed source.

http://www.enough.de
http://www.handmark.com
http://www.mosync.com
http://j2mepolish.org
http://javaground.com
http://www.metismo.com
http://www.mobile-distillery.com/
http://xmlvm.org/

br

Alex

Mihai Fonoage said...

Thanks for the resources Alex!

Formotus Mobile Business Apps said...

Mihai,

Please add Formotus to your list to make it more complete. Our approach is to put client software on each platform so they can all run the same XML-based apps. No coding, no dev tools (we use InfoPath to produce the XML).

Currently supporting Android and Windows Mobile, with beta versions coming soon for iPhone and BlackBerry.

Thanks!

'Formotus Glen'


http://www.formotus.com