Although iPhone is still by far the best platform to make money on or be able to have the highest quality experience for your apps, WP7 is my favorite platform to develop on with Android not far behind.
- Microsoft has taken the best compromise for the submission process. Approval is fairly quick (about 2 days) but it can filter out the large quantities of junk you get on Android. I’m happy to have somebody check that my app works fine on whatever device they test it on too.
- The development environment is seamless. You click on a .sln file to launch your project and then click Run. Voila. I admit that I’ve spent many more years developing in Visual Studio than Eclipse or Xcode but in the last couple years I’ve been using Eclipse/Xcode/vi, and Visual Studio just seems a quicker, smoother experience for jumping around, refactoring, debugging, etc. (It should be given its more limited scope.) When starting Mac development I remember reading this really long Get Started document about how Xcode/IB made so many things so easy. It must have said it was easy half a dozen times at least. So when you compare it to the case where you don’t have the concept of opaque resource bundles/File’s Owner/First Responder, it validates my initial impression that the architecture was a heck of a lot more obscure than it needed to be.
- C# is a somewhat better language than Java (delegates/better annotation model) and Objective-C sucks compared to either of them (memory management, allowing dereferncing null pointers [edit: doesn’t complain when sending a message to a nil object though this is probably not what you want], useless to learn for other development).
- Android is better for being able to develop on your platform of choice (though I suspect developing on Mac is best supported) but WP7 isn’t that far behind since you can at least run Windows inside a virtual machine but that’s against the rules for Mac. [Edit: According to a comment, it isn’t possible to run WP7 emulator in VM]
- In terms of payments and reporting, WP7 still has some maturing to do but it looks like they are off to a good start and it looks to me like WP7 users are more willing to pay for apps vs Android (though of course the market is relatively small now). The key/unique thing to understand with Android payments is that you are legally acting as the seller, not Google. This means that you are the one the customer calls when something goes wrong related to payments or installation. Not so for Microsoft or Apple.
Flame away 🙂
I too am currently making a WP7 app. I must say that Microsoft’s Visual studio is way much better than Xcode and C# is a great language to work with.
I wouldn’t give WP7 any points for “develop[ing] on your platform of choice” just because Windows will run in a virtual machine; it’s been my experience that the WP7 emulator doesn’t actually work within a VM.
Tell me you use Resharper too! I parted ways with XCode and ObjC. I’m using MonoTouch and MonoDroid now. Tools are everything, and XCode is an affront to programmers productivity everywhere.
I guess I’ll be getting flamed right along with you. 🙂
Jamie B: I remember looking at Resharper before and being really impressed. Will check it out again. The one thing you got to say about XCode though is the icon is beautiful with all the dimples on the hammer and reflections. Maybe not the most important thing to a hacker but I’m not entirely being facetious.
I don’t like developing on WP7 at all. It doesn’t help that it’s slow as molasses on my slightly old hardware (2Ghz C2D w/4GB RAM).
Also, I have a different opinion to the other commenters here. I’m a .NET developer by trade, but I have to say I absolutely love the change of scenery I get when I switch to XCode. I really like Obj-C too. Clearly we all have different opinions…
I find that null pointer message sending in ObjC to be one of my favorite design choices in the language. I feel it allows for beautiful, clear code. I hate writing in other languages where one has to test whether an object is null.
Discussion on Hacker News at http://news.ycombinator.com/item?id=2053635
Pingback: Tweets that mention Developing on WP7 vs Android vs iPhone - Edwin Evans -- Topsy.com
I love WP7 programming too. And for those experiencing slow performance on Visual Studio, it is very HDD intensive, so get a SSD and enjoy the massive speed boost.
Microsoft does 1 thing better than anyone else, integration of development and applications for the Windows Platform.
But as you say iPhone has the larger userbase so XCode it is (as well as WP7).
I love Android but agree that Visual Studio is a superior platform for developing. Since there doesn’t seem to be a way to use Visual Studio for Android development, I’m writing my own plug in. Maybe when I’m finished, you’ll find Android is your favorite?
I’ve written apps for all platforms (Palm, BlackBerry, iPhone, Droid and most recently WP7) and at the end of the day I just plain prefer WP7 over anything else. C# is a good language and sure, it has it’s faults but there’s a lot of power there. I despise Objective-C and really haven’t got into the other variations with iPhone (I heard there was a way to write .NET code on the iPhone but haven’t investigated it). Droid was well, Java. Nuff said. The write-once-run-anywhere moniker is wearing thin and just plain wrong for all but the simplest of applications.
Sure VS2010 can be sluggish but the cost is low (free if you use the express versions which can produce WP7 apps for you with the free toolkit). The marketplace is getting there. Give it 6 months or a year and it might overtake AppStore. Hard to tell at this point. The future. Difficult to see.
At the end of the day you choose what works for you and what’s most comfortable. Don’t let anyone tell you one platform is better than another. That’s just starting holy wars like the VB.NET vs. C# debate that we’ve lived in .NET forever. Find what works and stick with it. As long as you enjoy what you’re doing, you’re doing the right thing.
Pingback: Interesting .NET Links - December 31 , 2010 | Tech Blog