Leveraging your iPhone development expertise to build Windows Phone 7 applications

Leveraging your iPhone development expertise to build Windows Phone 7 applications

  • Comments 14
  • Likes

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
@jccim - blogs.msdn.com/interoperability

14 Comments
You must be logged in to comment. Sign in or Join Now
  • Better info about iPhone development than what I have seen so far elsewhere. Thanks for sharing and... Keep up the good work. I know from experience it's not always easy! :-).

  • really gr8 news about iphone development.

    prototype-interactive.com/.../mobile-apps

  • @StephC: trolling it's not. Thank you very much for your effort. If you find a site where one can sign a petition for an WP7 NDK, let me know. Or you could start one :)

  • C/C++ Native SDK soon on BlackBerry.

    walyati.com/.../rim-blackberry-playbook-java-sdk-and-cc-ndk-coming-along-with-gaming-engines.html

    Ooops, it seems that MS will soon be the only player without any support for native dev.

    I'm sorry to troll about this subject, but I'm really upset by Microsoft lately, I've been working on Windows Mobile since 2003, they missed so many opportunities...

  • GDC 2011: Microsoft under strong pressure to release native SDK for Windows Phone 7

    www.pocketgamer.biz/.../news.asp

    I only hope they won't wait until it's too late.

    It's almost too late now.

  • A 12 part guidance how to leverage your iOS and Android skills to the WP platform is available on SilverlightShow.net www.silverlightshow.net/.../C-for-Android-and-iOS-Developers.aspx

  • ralphsd
    1 Posts

    Why would you want to port any code for a successful platform to one that has virtually non market? If it stays that way and Microsoft decides again to kill off the product for the next relaunch, such an investment is worth even less.

    It will take a strong commitment from Microsoft and a lot more market share to prove that Windows Phone 7 is not a "software cimetière" (pardon the pun)

  • Very cool. Now, please, do think of some way to leverage my Windows Mobile development expertise. You know, the one with C++ and Win32 API. Preferably in a way that does not involve rewriting 100% of my code.

  • casper7
    14 Posts

    sounds like great news, just hope the marketplace doesnt get even more flooded with junk apps and games.  for some reason it bugs me to look through endless apps for hours to find 1 or 2 decent ones(note i said decent, not good or great).  just hope m$ has some way to filter out the junk.  no disrespect to any developers but im sure most people know what i meen.

  • Well, nice try, but I bet it won't work.

    Serious developers tend to stick to their preferred language and tools, because it's much more fun and valuable to build something than to re-learn and adapt.

    About 80% of the revenue on the AppStore is made by games, the defacto standard to build mobile games today is the C++/OpenGL stack.

    Google initially failed to attract games developers because of the lack of support of C/C++, they slowly added native support with their NDK, now they have games.

    Palm tried to attract games developers with "super easy" Javascript/CSS, they finally added support for C++/OpenGL and got some games, a bit too late.

    RIM is preparing a C++/OpenGL SDK also for their next generation devices, even if this SDK still has a weak support internally. (their Java church is strong)

    MS is trying to attract games developers with C# / DirectX, well... The platform has 2% marketshare, and even if the tools are cool and the OS is nice etc, it's extremely costly to maintain two different code base written in different languages.

    Most of the serious developers out there have their own abstraction layer to handle iOS/Android/Bada/webOS/etc/

    I really think that MS should add a native, standard SDK, with a minimal Posix-like API and OpenGL ES 2.x support, it's not that hard.

    It's not very important to create an "easy to use" SDK, they only attract beginners, the important features are :

    - Standard

    - Efficient

    - Few bugs

    - Good documentation (easier if standard)

    My two cents.

  • @StevieBallz: All of this is work in progress. We are exploring all options!

    Thanks for the feedback, i've posted your idea on our on our suggestion box: wp7mapping.uservoice.com

  • One thing you should add to your agenda is a similar tool for Symbian. Many developers will have to bring stuff over following the agreement with Nokia and it will make transition for them a lot easier.

  • Yes! Awesome news guys.

  • Ken
    6 Posts

    This is great news.  I hope a lot of iPhone developers jump onto this cause there's so many iPhone apps that would be great on WP7.