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.
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.
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.
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.
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.
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.
EdgeLib looks promising and has an iPhone beta announced but not open yet.
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)
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...
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.
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:
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.
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
appMobi.com is the cross platform native mobile application development and deployment framework. Supports standard web development tools like HTML/JavaScript/CSS
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.