title: How do you write for *all* phones/mobile devices simultaneously?
body: <p>We create non-game programs that run on mobile devices; iPhones, Windows Mobile, Android, Palm WebOS and the like.  Our main program is written in C# for Windows Mobile and we've been asked to port it to iPhone.  We are <strong>not</strong> looking forward to:</p>
  
  <ol>
  <li>The learning curve to pick up
  Objective-C, XCode, and Cocoa Touch.</li>
  <li>The pain of maintaining two
  sets of code to keep the product in
  sync on two different platforms.</li>
  </ol>
  
  <p>We've decided that as a strategy we want to create all <strong>new</strong> products on as many mobile platforms as possible simultaneously, a formidable task.</p>
  
  <p>We know we'll have to bend on these, but we'd prefer to:</p>
  
  <ul>
  <li>Avoid forcing our users to be
  connected to the web to use a product.</li>
  <li>Not have a bunch of different sets
  of source code.</li>
  <li>Support as many mobile platforms as
  we can.</li>
  </ul>
  
  <p>My question is this; <strong>What is your suggestion for the best strategy to develop for the 2 - 5 most popular mobile platforms?</strong></p>
  
  <p>EDIT: Based on the comments, I wanted to clarify that we have a product that we well-received on both PalmOS and Winmobile.  It works exactly the same on both platforms, making it easy for a user to switch handhelds and still use it.</p>
  
  <p>Now we're on the verge of creating many new business apps and want to expand that to other hardware/OSes.  What are your suggestions to deploy on many new platforms with the minimum of pain?</p>