Many
years ago, in fact pre-Java, I remember a hallway discussion about the
desire to write a single application that could easily run across
various platforms. At the time, we were only worried about writing
applications on Windows 3.1 and Mac OS 7.x. There were many discussions
about windows, user interface concepts, and specifically a rather long
discussion as to whether Mac users would accept a Mac application that
didn't have balloon help. Thankfully, the marketplace answered this
question for us with the Windows API winning the battle.A
similar set of questions is currently going on in the mobile world.
Unfortunately, at this point in time, there is currently no winning API
and none currently in sight. What's a developer to do? Here are some
questions that developers have (and there are many more):How can mobile developers target Android and the iPhone with the same code?How can .NET developers share their code across Android, iPhone and other platforms?How
can developers give applications the look and feel of the specific
platform and still allow as much code as possible to be shared?Mobile
devices share many common features, such as cameras, accelerometers,
and address books. How can we take advantage of them in a platform
independent way and still give the users the look of every other
application running on their platform?In
this article, we'll look at some solutions to these cross-platform and
code-sharing questions between Mono for Android, MonoTouch and the .NET
Framework available to developers.