1

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?

Ian Ringrose
  • 51,220
  • 55
  • 213
  • 317

6 Answers6

6

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

bkaid
  • 51,465
  • 22
  • 112
  • 128
indyfromoz
  • 4,045
  • 26
  • 24
3

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
  • 42,787
  • 22
  • 113
  • 137
  • 1
    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 Sep 28 '10 at 12:58
  • @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 Sep 28 '10 at 16:25
2

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

Support for Windows Phone 7 is coming ;)

Matt Lacey
  • 65,560
  • 11
  • 91
  • 143
2

MonoCross is a Model-View-Controller system that sits on top of MonoTouch, MonoDroid and SilverLight. So letting more of the UI logic be in common.

Ian Ringrose
  • 51,220
  • 55
  • 213
  • 317
0

A web application, maybe ?

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

OMG_peanuts
  • 1,797
  • 1
  • 13
  • 19
0

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
  • 4,821
  • 1
  • 24
  • 36