Ask HN: Learning phone development - iPhone or Windows 7 Phone?
I've put it off for far too long and I've decided I want to learn how to make phone apps. Now, the question is: should I learn for windows phone or iphone?
I'm interested in your thoughts on (a) what's easier/quicker to learn, (b) which will be more useful in the future, (c) which will offer a greater chance for earning income, and (d) whatever you thin is good advice...
10 comments
[ 2.9 ms ] story [ 26.9 ms ] threadHowever you do have a real choice. Do you want to learn the iPhone or Android? Right now the iPhone has a much better organized marketplace. However Android is selling faster and is rapidly gaining market share. It is unclear which will win in the long run. (I personally prefer Android's chances, but it is close.)
One benefit to Android is that you'll be on a much more standard computing platform. So if you decide that you want to move out of phones, you'll likely find C++ and Java to be more employable than Objective C.
My belief is that both will be players for some time. So pick either one and learn it. If it turns out to be the wrong choice in the long run, you will be able to switch later. Sure, you'll face a learning curve. But your previous experience will help.
Learn Android, that's where the future is. The iPhone reigns supreme, at least for 2010, but after that it's an Android world.
iPhone is alright, but it's getting marginalized by Android pretty quickly. The prickly antics of its owner are not helping either. Steve Jobs is a visionary whose vision is just a tad bit too imposing.
You can develop for Android without having a phone handset, from any desktop OS, using any tools you damn like. Best of all, you can sell your software, any kind of software (that's isn't harmful) to users. On top of that, it's Free, and actually beautiful, both in appearance and API; the people working on it are reachable, and very much approachable. Not some corporate head-honchos locked in a lab. It's worked on by hundreds of companies, employing thousands of developers.
Android is the best thing to happen to computing in the last 10+ years; it will have the same impact for mobile computing as "LAMP" for server side, and "GCC" for systems programming.
I've never been a fan of Eclipse, I used it a while back before moving to NetBeans for Java work, but for the work I've done so far in Android it works just fine and for the most part gets the hell out of the way - and when I want it to get in the way it usually has a wizard to help me out while I'm still green.
I think this is definitely good for new Droid devs, especially those that are new to programming in general - the books I've read, the online material I've read, and the official guides all have used the same development environment. So my opinion is that althrough you CAN use anything you want, you're guided towards the Elipse way unless you know what you're doing enough to work how you want to work.
It's pretty early to tell, but not a bad prediction at all.
(a) quicker/easier: I've programmed in .NET, and I would say Microsoft's development tools make programming very easy. If you have previous experience in Java or C#, Windows Phone 7 programming should be easier to pick up.
(b) more useful in the future: debatable but I don't see iOS going away anytime soon. No harm in learning both.
(c) greater chance for earning income: iPhone, no question. Windows Phone is definitely an unknown quantity at this point. If you want to make money right now, iPhone offers by far the largest market.
Regarding Android, while it's true that it is growing in marketshare compared to iPhone the app store is a bit of a mess. Rampant piracy, poor payment options, and lack of discoverability means that the App Store is still a much more attractive market than Android Market, at least for now.
Of course this could all change in the coming years, it's tough to predict the future. But if I were going to learn mobile programming, I would learn iPhone first, Android second, Windows third.
WP7 right now has a small market but isn't flooded with products. You have an opportunity with Windows Phone 7 to gain first mover advantage with your product that you won't necessarily have with Android or iPhone.
With iPhone, charging for your product, unless it meets a particular niche is unlikely to be viable in the long term. If you can make money from in-product purchases and can promote your product in a crowded market, iPhone is probably the way to go right now.
Android is gaining popularity and the question with Android isn't just phones but what else would you run the app on? (e.g. TVs)
Incidentally you have the same question with iPhone (iPad, iPod Touch and a possible future AppleTV store).
I would recommend that you look at the app you want to make. If you pick something fairly simple that exists in a niche without too much competition you can test the water for each. You might need to rewrite code, but you would be able to reuse algorithms and patterns in a large amount of cases.