Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a computer science student working on some mobile games. However, I am completely torn and keep going back and forth deciding whether to learn Windows Phone or iPhone development.

I love developing for Windows Phone because C# and XNA are both great tools. However, it is unproven on the market and has a market share many times less than that of the iPhone

If you have experience in one or both, I would love to hear what you have to say.

It would also be helpful to hear what you think about the prospects of learning C#/objective C in terms of job prospects because well, I am a student and that's important.

A few things to keep in mind: I own and love the iPhone I understand memory management I want to develop the best programming practices possible (I have heard that because C# hides so much, you can develop bad habits)

EDIT: Because some people asked. This is purely for my own benefit, not for a class. I have time to spend this summer to develop my skills and I want to get the most out of it. I have a few game ideas that I have been toying with, but I primarily want to develop good practices.

share|improve this question
    
I completely agree with you about learning good practices. See my answer below. The time I spent learning Obj-C was also doing Ruby, PHP, Javascript, and ASP classic. Doing all of them within a 2 year time span MASSIVELY jumped up my chops in understanding good development. –  James P. Wright Jun 12 '11 at 3:58
1  
Could you clarify your intent here? Are you looking to develop an app (or apps) just to get experience, or for some school project? Or, do you have an idea for an app that you you actually want to market? This might influence the answer (it would influence my answer for sure:-) see below. –  Steve Haigh Jun 12 '11 at 10:44
add comment

5 Answers

I would go with iPhone there as you have a much, much larger market for your products. I'm confused as to why android is not on this list as I would rank that far above WP7 as well.

share|improve this answer
1  
-1: Yes, more people own iPhones than WP7s, but the nature of the iPhone app store is such that it's very difficult to stand out and be discovered. –  Jim G. Jun 12 '11 at 14:42
    
@Jim G.: That's a good point. However, WP isn't selling well and teh developers are dropping off (from the few articles I've read anyway...). There is a fine line between open market and dying market. –  Ed S. Jun 12 '11 at 19:21
    
The reason WP isn't selling well is because most people are locked into contracts with the carriers and can't switch until that contract is expired. I have seen a lot of interest in the platform online, and the app store is growing pretty fast, so I wouldn't call it dead yet. –  EpsilonVector Jun 12 '11 at 20:23
    
@Jim G.: Of course not dead, just lagging behind iOS and android in terms of developer uptake. I just jumped into android development (literally two weeks ago) and I had to make a similar choice. I liked the openness of android, so I chose it over iOS. After looking into various aspects of WP I just couldn't make a good case for myself to use it. That said, I'm no expert here, and I'm interested to hear what more experienced mobile devs have to say about it. –  Ed S. Jun 12 '11 at 20:58
add comment

Disclaimer: I don't have specific experience with either iPhone or Windows phone, so I may be way off base, but this is how I see it:

AFAIK, Objective-C has a very niche market, being the iOS. As large as the market is at this point, you'll generally only find job offers with companies launching iOS apps. As many companies as there are doing that right now (only a few have a large employee base AFAIK as most are startup-style), you'll find a much larger professional market using C#: Windows, console games, Windows phone, etc.

Pursuing C# development on the Windows phone gives you a little leverage over iOS development:

  • You get exposure to Windows development (XNA, C#), which can be useful over a large number of platforms and industries
  • You still get mobile experience, which is invaluable in this day and age

Also, MS App Hub seems to be very well put together and your chances of standing out in that market rather than an over-saturated iOS market is better.

All just my opinion of course, so feel free to blow holes through this in comments :)

Also, Android may be worthy to look into as they provide you with an incredible cross-platform tool set and Java's never a bad thing to learn.

share|improve this answer
add comment

Demian Brecht: People always question my interest in Windows Phone development and you pretty much nailed it. C# is used more broadly in the computer science world and the Windows Phone marketplace hasn't been saturated yet so a good app can really make a difference.

I also jailbreak my iPhone and follow that community heavily. If I started iPhone development then I could become more than a follower if you will.

Also, I would rather not develop for Android. I don't want to deal with fragmentation and the

share|improve this answer
add comment

As a C# Developer that has written iOS apps, stick with C#.

You will find more jobs, you will have more options, and using MonoTouch you can always write iOS apps in C# (and Android now it seems).

That said, the time I spent learning Objective-C was possibly the largest jump in my skills as a developer because I was forced to learn to do things the correct way that .Net had done for me or allowed me to do "dirty" for years and I also got to learn concepts that helped me understand similar concepts from other languages.

share|improve this answer
add comment

I'd go for the iPhone, not because I think it is a better platform than WP7 but simply to broaden you experience.

You say you understand memory management, developing in Objective-C would be great practice and extend you skill set because it has a very different memory management model to .Net (as you know, obviously). I'm not saying that the reference counting aspect of obj-c is "good", but as a CS student I'd say it would be of benefit to you to get to grips with it and really understand the differences between GC systems and reference counting systems.

However, if you have some problem to solve ASAP, or a project you need to turn in that needs to be on a mobile platform then think twice, it might be worth sticking with what you know. However, if you have the time (and you have a Mac to develop on) then take a look at it just for the fun of it while you have the time.

As for job prospects, it depends a lot on employers. Obviously a .Net shop will want .Net skills, but showing that you know .Net and Objective-C would demonstrate that you are adaptable and can pick up new skills. I would really try not to focus on this too much, focus on learning skills and getting a good degree.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.