Platform independent options for iOS and Android

Can anybody help suggest platform independent options such that a single code base can be used to build either an iOS or Android app? Also targeting Windows tablets would be a plus but not a necessity.

How does performance and UX differ from native apps? Caveats?

Thanks for any help that you can provide.

Mark (BNR July '11)

For the first part of the the question:
This is not something trivial. But I can suggest two options:
[ul]Exploiting common-denominator features;
Generating code from a high-level spec.[/ul]
The first option is easier but limited in power; the second option is hard but very powerful.

Thank you for your advice. Can you suggest any sources where I can research each option?

Actually, what are you trying to do?

My goal is to cost effectivly create apps that will run on both iOS and Android. I want to do this (1) to increase the potential market for apps that I develop and (2) as a hedge against the possibility that Apple might decide to remove an app that I develop from the App Store. I’m not sure if this goal is feasible.

An app that I developed for clients was recently removed from the App Store by Apple due to an ongoing patent infringement lawsuit that likely will not be settled in the courts before next year. In April the Plaintiffs asked Apple to remove the app. Since then we have received no confirmation of receipt of our emails nor any response at all from Apple on this matter. Developer relations has said that Apple legal has no phone number that we can use to call them about this. We seem to have absolutely no recourse other than to wait for the lawsuit to be settled in the courts and then to contact Apple to request reinstatement of the app. But how many businesses or developers can afford to have their app unavailable for sale for a year or two and pay attorney’s fees at the same time?

Frankly, it concerns me to think that I might commit months of my life to create an iOS-only app only to have Apple remove it from sale because another company alleges that the app infringes on one of their patents. I’m gun shy at this point.

Thank you for sharing the story; you have my full sympathy.

Your goal is feasible but requires a lot of investment (in terms of time, personal energy, finances, learning code-generation technologies, etc.) if you want to generate code for multi-platform applications from high level specs. Also there are major differences between Android and iOS. I think, Android relies on Java heavily.

Probably your best bet is to concentrate on creating good reusable designs, and also to factor out anything that might be reusable into C or C++ libraries if possible (but I am not sure how you would integrate them easily into a Java platform.)

Good luck with your journey.

Thank you for your help.