Which one should I go after/learn? I开发者_运维百科n terms of market share, prospect, market penetration, opportunity, learning curve etc.
I am a .NET programmer myself. I really hope that Microsoft can do better this time. I hope I can make use of my little knowledge in Microsoft platform to achieve something in mobile apps.
I am opened to any comments. Thanks!
I think Chris has some good points. I would also ask what your objective is. If you're looking just to learn how to make mobile apps and get more skills under your belt, you'll have to weigh the things he's mentioned when choosing which platform to pursue.
If, however, you're looking to make money on an idea(s) you already have in mind, take a look at that app's prospective market specifically. The iOS market is largely saturated in that pretty much anything you can think of, there's an app for that already. Android, there's a lot out there, but still room for a lot, too. WP7, there's a good chance you can be first in with whatever need you're looking to fill, and that could be a big revenue opportunity if it's something everybody needs even if WP7 itself doesn't command a huge market share.
If you're a .Net developer, I'd start with Windows Phone. You have an opportunity to be one of the first apps on the device, you already know the language (if you do C#) and framework, etc.
From the perspective of market share, I believe, emphasis on believe, iPhone still holds the crown there although that is rapidly changing and may have already been overtaken by Android.
Depending on what language you use in .Net (as .Net isn't actually a language), Android might be the easiest to pick up because it relies on Java which, in my opinion is not super far from C# or VB. Objective-C in my opinion, is a little bit more foreign coming from a .Net background than Java is. This is just my opinion though and has a lot to do with syntactical differences rather than actual differences. To be honest, I'm willing to bet that they are about equidistant from the .Net languages, just in different directions.
In short, I would stick with what you know and leverage the fact that you already understand the .Net platform. If you want to learn something new, then I'd go for Android/iPhone. They're both so close in market share that I'd make the decision between the two based on other factors: can one do something the other can't, do you have a Mac for development, etc.
I'm .NET developer too. I would have loved to make .NET Apps for Windows Phones, but 1 year ago their market share wasn't quite well. There were (and still are) many Windows powered Smartphones ouf there, the only catch so far is: Most of that phones are used by business men and with exception of a few apps and features (Mails, Exchange, Synchronisation) there isn't much this people need. Most of them even rarely use their phones to browse. Using of apps is even lower.
So there are actually 2-3 things you need to consider when deciding:
a) What kind of audience you're looking for? - Windows Mobile: Business people mainly - iPhone: iPhone is a mix of business and normal consumers (normal people who also like to have games and some more or less usefull appss) - Android: mainly consumers. Currently Android isn't the best phone to chose for a business man. There are plenty of apps which professionally aim for the business people
b) Do you want to make money with your app or do you want to make it free (or ad-powered)? - Paid apps: Currently, as much as I hate to say it, it seems the iPhone/iOS is on the lead there. Not only cause they have more users but also because iPhone users tend to spend more money on Apps than Android users do - Free/Ad-powered: For free/ad powered apps, Android is a quite good choice. iPhone should be equally good choice, even though there are more rules for apps publishing on iPhone - Windows Mobile kind of feels of here, due to it's audience. Not many people are using apps there, as most of them really just use it for contacts and synchronisating with their exchange server. No internet users = no ads income and same for paid apps
c) Language preference/accessibility? - .NET: Windows Phones wins of course, as you're most comfortable with that language. Dunno how much of the phone features you really can access with the compact .NET Framework - Android/Java: Out of the 2 remaining languages, Java is the closest to C#. If you know .NET well, you shouldn't have much problems in Java neither (some things are different, but mostly is pretty similar). Also you won't have to take care about reserving and releasing memory as Java uses GC too, like .NET. From accessibility, Android allows the apps most access to the hardware with least limitations. - Objective-C: Imho the most complicated of the three, mainly due to it's close affinity to C/C++. And as far as I know the iOS Api is quite restricted (compared to android)
I would like to add that you can use your .Net skills using http://monotouch.net/ for iPhone
You might also have a look at NS Basic/App Studio. The BASIC it uses is modeled after Visual Basic, and the IDE isn't that different either. It produces apps which will run on iOS, Android, BlackBerry and WebOS. No WP7 support.
Did you look at MonoTouch and Mono for Android from Xamarin? http://xamarin.com/
MonoTouch and Mono for Android make it easy for .NET developers to dive right into mobile development.
精彩评论