views:

130

answers:

6

Do any libraries or other development resources exist that can help reduce the effort involved in porting applications between various mobile platforms? In particular, I am interested in supporting iPhone, Android, and Windows Mobile. Some areas of concern include UI, client-server communication, and hardware support (e.g., camera, GPS, etc).

+3  A: 

MonoTouch allows you to write iPhone apps using .NET (C#). In the near future, an Android version will also be available (MonoDroid)

As for Windows Mobile, I'd forget about that and concentrate on Windows Phone 7, which will use Silverlight for apps. And of course, Silverlight is .NET as well, so you can share all your business logic between Silverlight, MonoTouch (iPhone) and MonoDroid (Android)

Philippe Leybaert
Sliverlight does not run on MonoTouch. "We are expecting a prototype in Q3 2010." (from http://monotouch.net/Roadmap)
CommonsWare
I didn't say MonoTouch runs Silverlight. I'm saying you can create all your business logic in C# and use it in iPhone, Android and Silverlight apps.
Philippe Leybaert
A: 

There is actually a really good tool out there that allows you to write apps for android and iphone in javascrpit, HTML and CSS. Then the program will port the app for either iphone or android, building the objective C code (iphone) or java code (android) as it compiles. Later revisions of the program are said to include the ability to port to palm and blackberry as well. And the bonus... free and open-source!!

BrannDon
A: 

There doesn't exists a way that actually works out in the market. I have to say this is the real answer.

overboming
It's about a solution that *reduces* the effort in porting, not *eliminate* the effort. So this is not the real answer
Philippe Leybaert
+1  A: 

PhoneGap supports Android, Blackberry, and iPhone formally. They tweeted that it works on Windows Phone 7, but it's a bit early to feel certain of that, since that OS has not shipped yet. Has reasonable but far from complete hardware support.

CommonsWare
You should mention that this is not a solution for building native apps, but web apps
Philippe Leybaert
Phone gap does not build web apps. It allows you to build native apps using web technologies
Matt Lacey
A: 

Well it appears that iSpectrum seems to be what you're looking for. You'll find a video on their website homepage ( http://www.flexycore.com/ ) which shows a 3D android game they ported in only 2 days!

Pr Chaos
+1  A: 

All mobile platforms I've encountered so far have C89-compatible compilers, so that is what you want to use for the core application logic if you have high portability requirements.

The product I'm working on can currently be built and run on Android, iPhone, Symbian, Windows Mobile and some other proprietary platforms (Nintendo handhelds) and legacy platforms (PalmOS, OSE) as well as "real" machines (Linux and Solaris servers). Of course the UI code has to be written specifically for each platform, but the core is built from the same source code for all targets.

Christoffer