views:

3623

answers:

17

Have any well-documented or open source projects targeted iPhone, Blackberry, and Android? Are there other platforms which are better-suited to such an endeavor? Note that I am particularly asking about client-side software, not web apps, though any information about the difficulties of using web apps across multiple mobile platforms is also interesting.

+5  A: 

The iPhone uses Objective C, the Blackberry Java SE with RIM functionality and Android another custom version of Java. I could possibly see how you could combine the latter two but there is no functionality (without jailbreaking) of running Java applications on an iPhone.

The best bet I've seen so far is something like Qt that will run on Windows CE, almost certainly shortly Symbian, some Java platforms and the three major desktop OSs.

Mike McQuaid
Would not a web UI be more promising given that 2/3 devices above use webkit for browsing? I'm also skeptical of any app that tries to have a single UI for touchscreen *and* non-touchscreen devices (which most blackberries are).
Luke
You could: Write a compiler that compiles Java to obj-c or directly to native (much like monotouch does for C#) or ship a java vm with each application. Both methods are probably not allowed with regards to the recent apple sdk licenses though.
nos
@nos: they just reverted that policy in the last version.
Tim Büthe
A: 

Nice answer Mike.

Consider too that the form-factors of those devices differ significantly, so your user interface must be different in non-trivial ways. Consider: screen size, ability to touch the screen, physical vs. non-physical keys, and platform-specific interface assumptions.

Jason Cohen
+2  A: 

For the iPhone there's currently no such notion as Open Source as the Apple iPhone SDK NDA forbids publishing code. They also forbid posting code on any non-Apple site or even non-Apple discussion forums on iPhone development. As soon as the NDA expires (will it ever?) we'll start having Open Source iPhone apps.

Mike Reedell
+1  A: 

Well BlackBerrys don't really have Java SE, they have Java ME, with a lot of additional librarys provided by RIM. Same goes for Android. The only cross-platform apps you'll ever see on mobile devices are probably written in strict Java ME, which runs on most devices. However, just like JavaScript between different browser, Java ME has is quirks across different devices, so source code changes may be necessary.

Jan Gressmann
+2  A: 

I started to use a really cool cross-platform SDK called EdgeLib. It allows you to use a simple API and you can compile your projects to a variety of platforms: Windows Mobile Pocket PC, Windows Mobile Smartphone, Symbian Series 60, Series 80, Series 90, Symbian UIQ, Gamepark Holdings GP2X, Gizmondo and Windows desktop. I know iPhone, Blackberry, and Android are not on that list but the developers mentioned that these platforms are on their roadmap.

dudico
Shouldn't the fact that gizmondo is targeted be a concern? It was never successful and their ceo is in jail..so why was this a compelling target for EdgeLib if not for sales/marketing/buzzword bs.
Luke
Luke... do you know about the HW and Software specifics of the Gizmondo? It was ahead of its time.
monksy
+2  A: 

EdgeLib looks promising and has an iPhone beta announced but not open yet.

jacobsee
A: 
+1  A: 

redfivelabs have implemented the .Net compact framework for the S60 platform

Titanium Mobile from Appcelerator looks interesting. You develop your app in HTML & Javascript and upload to their server where it is compiled into a native application of the target platform (currently iPhone & Android)

rupello
+5  A: 

I think there best chance for cross-platform mobile success is the Web. Just write a very simple Web application for what you want to achieve. It should work on the Nokia S60browser, Iphone and Android.

That's already a lot of mobile devices...

hendry
+1. And to get that App Store glamour (and sales), you can use the web browser controls to create a shell native application that calls up your web application, at least on Android and iPhone. http://googlegeodevelopers.blogspot.com/2010/02/going-native-using-google-maps-api-v3.html
MarkJ
Well, that does heavily depend on what your app should do. What about taking pictures with your app und do some image recognition? You can't do this with a webapp to target all mobile devices.
Tim Büthe
You can use a camera API with interim stopgaps like [Phonegap](http://phonegap.pbworks.com/iPhone:%20Camera%20API). Otherwise there are implementations of http://dev.w3.org/html5/html-device/ coming soon.
hendry
+12  A: 

There are 2 [newish] solutions to exactly this issue:

http://www.rhomobile.com/

and

http://www.phonegap.com/

Matt Lacey
would like to add Appcelerator (http://www.appcelerator.com) to this list.
Tejaswi Yerukalapudi
+3  A: 

XMLVM (via Coke and Code) and EdgeLib currently seem to be the most mature options. EdgeLib is aimed primarily at game developers, and according to Coke and Code, the XMLVM developers are difficult to contact.

Nicholas
A: 

We have a cross platform mobile development platform called RAMP. It covers both feature and smart phones from midp 1 to Android. The platform is mostly aimed at secure commercial applications but it is pluggable so you can do almost anything with it.

For more information and access to the platform have a look at:

http://ramp.virtualmobiletech.com/

Arno
+1  A: 

Check out Open Plug ELIPS Studio that provides an Add-in to Flex Builder for converting your AS3/Flex code into Native code for iPhone, Android, Symbian and Windows Mobile. One codebase for the Big 4 platform and the beta is actually free.

manu
A: 

Phonsai is new in the market for cross-platform mobile develeopment "without coding" It is mixture of do-it-yourself mobile development and content management You can customize all applications. No templates. It is SaaS. Totally web based with java web start. Work with 2000 mobile phone models. Very simple GUI and no coding. Just copy and paste. It has create, send and report modules. And at last it has 4 emulators inside so that it is a WYSIWYG concept. You can reach Phonsai at http://phonsai.com

Selami Balaban
A: 

appMobi.com is the cross platform native mobile application development and deployment framework. Supports standard web development tools like HTML/JavaScript/CSS

Reed Sutton
+5  A: 

The HTML5 standard has support for releasing stand-alone HTML5 apps. Essentially a HTML5 app is a bundle of HTML5, JavaScript and CSS files that will run stand-alone in the browser of the desktop or device. You can distribute them like any other program, including selling them on the iStore for the iPhone.

The support for this is patchy at the moment but is likely to improve tremendously in the next year or two.

Google for "HTML5 apps" for information and resources. A good introduction to HTML5 is the online book "Dive Into HTML5" by Mark Pilgrim. This is a work in progress, but sufficiently complete to be useful.

Dave Kirby
Interesting reading, deserved more than that lonely upvote.
DrDro
I don't think you can submit a so called HTML5 App to the App Store. Oh, and it's called App Store, not iStore.
Tim Büthe