views:

107

answers:

5

It is clear that Mono Touch is part of the solution as it allows C# code to run on the IPhone, however Mono Touch wraps the IPhone API so does not provide a common API.

Another option would be a jave-script toolkit that work on both and provided on-line data storage.

However what real life experience do people have?

+3  A: 

It is possible to share code between your Monotouch iPhone application and Silverlight Windows Phone 7 application. Craig Dunn, an expert on Monotouch discusses this in his recent post - MonoTouch meets Windows Phone 7

HTH, indyfromoz

indyfromoz
+2  A: 

Mobile platforms are far from being versatile and act in singularity, Chances are high they'll end up with holistic war much like browsers of today. If I were you, then I'd straight away take a decision to write two separate apps. Even if you get to write some apps using Mono, tomorrow you'll surely have issues with features compatibility commonly or distinctively supported on both phone platforms.

Bottom line is if you wish to leverage from the platform stick to the native platform SDK and tools.

this. __curious_geek
I don't think two completely separate set of source code is needed, however you may be write about having separate UI code for each Mobile platform.
Ian Ringrose
@Ian: That's a detail I'd consider while system design. but from higher altitude I'd go with writing separate apps that may share common design beneath the UI and may be share some code as you mentioned.
this. __curious_geek
A: 

A web application, maybe ?

Something made with RoR or Django, with no flash nor silverlight.

OMG_peanuts
how do I make this work "of line" and show up on the "start page"?
Ian Ringrose
Offline access is a turndown for my proposal.
OMG_peanuts
A: 

There are several options here:

1) Design a platform abstraction layer so you can write your code to the PAL and the PAL on each platform does the right thing. The problem with this is the PAL will resemble the lowest-common-denominator unless you're happy to stub-out the functions that don't do anything on the platforms that don't support them. Your common application logic can then be written in whatever is appropriate - probly C++.

2) Create your common code in something like C++ and your platform-specific code in the platform-specific framework (.NET / Obj-C). This allows you to have your common application logic as a Library which the platform-specific code pulls in.

3) A hybrid of (1) and (2) using #ifdef/#endif pairs to pull in relevant parts. I don't recommend this - it's painful.

4) Write the code for each platform completely independently and share the design, algorithms and digital assets (bitmaps, icons, sounds, etc). Yes, more to maintain but gives you best experience on each platform.

5) A web application as OMG_Peanuts suggested. This is a quick win but little-or-no platform-specific features.

JBRWilkinson
C++ is not an option for the W7P, it only surports C# and VB.NET
Ian Ringrose
Really? I thought XNA allowed other .NET languages. Okay, my bad. -1 for me.
JBRWilkinson
+2  A: 

Have a look at http://www.phonegap.com/.

Support for Windows Phone 7 is coming ;)

Matt Lacey