If you were going to attempt this, what would be the main factors to consider, easy/hard parts, pitfalls?
It is just a new language, a new API, and another platform vendor. What could possibly go wrong?
If you give some more details about what kind of application (and its key characteristics) you would like to port we could give you a little more specific answer.
First, see MonoTouch. It might well save a bit of heartache because you might be able to keep your app's core code in a single language if you are extraordinarily disciplined about making sure no platform api calls leak into your app's core.
But yeah, what Albin said.
The real problem you face is this - the design paradigms are totally different. One Windows Phone 7 you are supposed to have these long strips of data, which a user can only see partially into - on the iPhone it's more like navigating a hierarchy of data. If you really try to build the app once you are going to have an app that looks out of place on one or more platforms.
Hi Jeff,
I think this is a great question, with a very straight forward answer.
For me, I consider UI's to be so light weight they are virtually throw away, in particular on a mobile device where extensive feature sets are generally less than practical and simple solutions gain consumer traction.
Granted there may be considerations of mismatch in features on both sides which will likely become less of an issue over time. Often there are different ways to approach things if you encounter a mismatch and it's important to you that your app gets the wider consumer coverage that multiple platforms affords.
So in my summation, the considerations boils down to this. Just do it, if the platform seems worth your effort to invest in. This will depend on you and your goals, your app and it's purpose, and the momentum the respective platforms generate. An individual choice for the most part.
Keep in mind all your investment can be kept in your choice of server technologies which for the most part is client platform independent. Assuming your app even needs a server.
This question is also going to be addressed in detail by Jesse Liberty in his blog series iPhone to Windows Phone 7.
Jeff.
The issues you face include a shift in the underlying pattern from MVC to MVVM, but this is not as radical as it might seem. You will be working with a new language and with new language features, in a new development environment.
There are some traps along the way, especially the differing meanings of essential terms such as Interface, Delegate and so forth.
To address this, I've started a series of tutorials called "An iPhone Developer's Guide to Windows Phone 7 Programming" which you can find on my blog
The good news is that the developer tools are free and there is a lot of documentation, both official and from the community, with a lot more coming every day. The release version of the developer code comes out on September 16 (though you can start right now with the beta code). My first tutorial tells you all about how to get everything you need.
Best of luck and let me know if I can be of help.
-jesse
Thanks.