views:

342

answers:

4

Hello,

I have a python app running fine on Windows, Linux and Mac which I would like to port to multiple mobile platforms such as Blackberry, Windows Mobile, Palm, Android and iPhone.

I have couple of ideas: - port app to platform supporting some kind of Python like Andoid and Windows Mobile - port app to Java to target most platforms right away

What would you recommend ?

Laurent

+1  A: 

Jython is out of the question, so either go with supported phones (Windows Mobile, Android, Nokia S60), or rewrite in J2ME.

voyager
Is that post still accurate? I note that it's from 2003.
Eli Courtwright
To your knowledge, whats the most open mobile platform when it comes to development ?
Laurent Luce
I'd have to say J2ME. It's free to develop, and no one single handedly controls the distribution channel. You can use any phone to test (you don't need an special device) and you get the biggest market share (only the iPhone is unable to run J2ME).
voyager
+4  A: 

Here's what we're doing ...

Make the app a generic web application/website. Host it on your server and have your server detect the type of browser. If it is a mobile browser, show the small-screen version of your app.

Once you get that going, create individual apps for the particular phones/mobile hardware. Those will each have a single web browser control in them. The web browser will have a hardcoded URL which points to your web site.

For example, write a java wrapper for Google Android. Write an Objective-C wrapper for Cocoa Touch (iPhone using XCode). Your wrapper for Windows Mobile will be in a .Net Framework app in C# or VB.Net (or IronPython for that matter).

Here's how to do it for iPhone: http://www.iphonesdkarticles.com/2008/08/uiwebview-tutorial.html

Here's how to do it for Android: http://developerlife.com/tutorials/?p=369

Here's how to do it for Windows Mobile: http://msdn.microsoft.com/en-us/library/ms229657.aspx

The wrapper can then access the phone's firmware for motion, GPS info, sounds, and so forth.

The beauty of this is

  1. You can now submit each app to the individual platform's AppStore which is the #1 way to get new customers.

  2. You have one set of source and one place to upgrade. When you upgrade in one location, everyone gets it immediately.

Rap
This is highly dependant on what the application is about.
voyager
A: 

Use JavaScript with Titanium Mobile to target iPhone and Android, and the Pre in the future. It compiles into native applications.

Wahnfrieden
A: 

Use RhoMobile's Rhodes. Allows you to write the app in Ruby once and run it in multiple mobile platforms: iPhone, Symbian, Android, BlackBerry, and Windows Mobile.

Nathan