Leveraging your iPhone development expertise to build Windows Phone 7 applications

Update – 6/9/2011: Android to WP7 API Mapping tool is now available

Assuming you are a happy coder, the joy of developing software all comes down to a few things:

  • Building something cool that users will enjoy
  • Getting rewards from users and recognition from peers
  • Learning how to solve new challenges and build novel features.

Even if you have a solid expertise on a particular platform/language, I think it is essential to be a “polyglot” developer. In other words, you might have a native or preferred language, but opening your mind to others can be very stimulating and will bring considerable value to your abilities and your resume.

Jumping from one platform or language to another can introduce breaking changes in your habits, but ultimately change is very stimulating and will expand your opportunities.

If you are a .NET developer, learning Windows Phone development is not really “change.” Instead, it is more of a continuum, where you just add new features to what you already know. If you are an iPhone developer, new to Windows Phone (and .NET), yes this is different. But don’t worry. The learning curve is not as steep as you would imagine.

How can you leverage your iPhone development expertise to build Windows Phone 7 applications?

There’s no magic wand that will do the work for you, but we have put together a great package to help you get started. It’s available at http://windowsphone.interoperabilitybridges.com/.

The package consists of:

  • a NEW iPhone/iOS to Windows Phone 7 API mapping tool (see details below)
  • a 90+ pages “Windows Phone 7 Guide for iPhone Application Developers” white paper, organized in 8 chapters, and growing
    clip_image002
  • a series of “developer stories”, in which developers share on video their experience porting iPhone applications to Windows Phone and explain why and how they did it.
    Here is one with Whurley from Chaotic Moon:

    A short version is also available here, and many other stories are available here,
  • and a compilation of the key resources you need to get started.

New API mapping tool: iPhone/iOS to Windows Phone 7

clip_image004Launched today, the iPhone/iOS to Windows Phone 7 API mapping tool helps developers find their way around when they discover the Windows Phone platform. Think of the API mapping tool as being like a translation dictionary. For example, let’s say that you’re planning a vacation to France. Since you don’t speak the language, you’ll bring a pocket travel dictionary. Having this tool will surely help you to get some idea about what you are ordering from a restaurant menu but you’ll have no idea what the actual recipe is — nor will you be able to have a conversion in French with the server! But that’s a great learning tool to make the first steps.

With this tool, iPhone developers can grab their apps, pick out the iOS API calls, and quickly look up the equivalent classes, methods and notification events in WP7. A developer can search a given iOS API call and find the equivalent WP7 along with C# sample codes and API documentations for both platforms. Give it a try!

The code samples allow developers to quickly migrate short blobs of iOS code to the equivalent C# code. All WP7 API documentations are pulled in from the Silverlight, C# and XNA sources on MSDN.

What sort of applications does the mapping tool address?

Taking a step back, the iOS APIs can broadly be classified into the following categories: Audio / Video, Data Management, Graphics / Animation, Network / Internet, Performance, Security and User Interface

For current mapping, we started with 3 popular categories (Network / Internet, User Interface and Data Management) and mapped them to Windows Phone 7 API. Don’t expect a mapping for all of the APIs, simply because the platforms are built upon different architectures and user interfaces. For this first round we focused on identifying the one-to-one mapping when it exists. In the following versions we’ll expand the scope and anytime the concepts are similar enough, we’ll do our best to provide the appropriate guidance.

What’s next?

Of course, this is a work in progress, coverage will expand and more iOS APIs will be mapped soon. So, please consider using the mapping tool in your porting efforts, and provide feedback on the dedicated forum, where you can also suggest new mapping APIs to include: http://wp7mapping.uservoice.com

And before you ask, yes we are planning to provide similar guidance and tools for Android.
Stay tuned!

Jean-Christophe Cimetiere, Sr. Technical Evangelist – Interoperability
@jccimblogs.msdn.com/interoperability