views:

324

answers:

7

I've been developing applications for a long time now, but now I want to jump into Phone applications development. There are four main candidates:

  1. Nokia's Symbian
  2. Apple's iPhone
  3. Google's Android
  4. Microsoft Windows Mobile Phone

Can anyone suggest one, considering documentation, market, samples and availabilty of emulators, I'm not a millionaire so I can't buy it unless I know it would mean profits!

I don't have much preferences as for languages, but to stay within C# would be nice, however I've been thru Assembler for a long time, so it's hard to scare me :)

+2  A: 

Some thoughts:

  • If you have a mac then the choice is certainly the iPhone since all the development tools are free.
  • AFAIK the Android SDK is an Eclipse extension and can run on pretty much any environment, and is also free.
  • Mirosoft charges for its IDE, and probably has the smallest audience.

I am pretty sure you will find more community support for iPhone or Android development too.

Nippysaurus
Microsoft doesn't charge for the Express versions of the tools, including Visual Studio Express 2010 For Windows Phone.
Alan B
+11  A: 

There are many factors to consider such as where the biggest market is, and so on. But ignoring those factors and thinking just about technical and money issues, the clear answer is start with Android.

The Android SDK is totally free. The iPhone dev tools need a Mac, so if you're not a Mac user, you need to buy a Mac. If you're not a Mac user, then it's probably a safe bet that you don't already know Objective C, which you'll need for iPhone. You don't even need a phone, there is an emulator that works wonderfully. It's very rare that I've made something that works in the emulator but doesn't work or works differently on a real phone. So the emulator is quite excellent.

Android programming is Java, and is very similar to C#.

Android development is much more approachable and easy for development (for getting started at least) than Objective C and iPhone.

There are many online resources available, but the book "Hello, Android" is actually very good. It's dated, though, goes back to version 1.5 of the SDK and we're at 2.2 today, but the fundamentals for getting started are pretty much the same.

You may decide to go another way, but in a handful of hours you can be writing your first Hello World program on Android free of charge. Even if you decide to start on another platform, you can hardly go wrong by giving Android a shot first.

Another thing that's worth noting is that Android is way easier to sell and distribute your apps than iPhone, making it a better place to start. There is no app approval process with the Android marketplace, so you can have your app posted for sure without wondering whether the powers that be will approve your first app for sale or to give away.

It bears mentioning that if you go the Microsoft route, your C# experience will transfer almost completely, and you'll be amazed at how close the compact SDK is to writing plain Windows apps. (At least, it was in 2007, the last time I wrote a Microsoft phone app.) But forget I brought this up-- if you want to be a serious phone developer for consumers, I recommend you forget about Microsoft at least for now.

Unoti
+1 for Android. You also have to take into consideration where the trend is. The trend definitely is Android and iOS at the moment.
Octavian Damiean
I agree with you, still I had to make some research, since Im a newb in this field, before I'd make some rush desitions
David Conde
I was going to +1 this well-written response until the the last sentence with the complete lack of knowledge of Windows Phone 7. So -1.
WinnerWinnerChickenDinner
I am a C# programmer and was able to get the Android SDK and Eclipse environment setup on my Mac very quickly. Even better I was able to develop a usable (and useful) non-trivial application in a day. I have a background in Windows Mobile development with the Compact Framework but I guess that is out of date now, but for what it is worth Android development is almost as easy and in a few ways even better. I find iPhone development and objective-c too intimidating (or objective-c too outdated...), but iPhone is where the money is at. So I would go with the above poster and try Android out first
row1
If you want to write phone apps, the time to get in on 7 dev is now. You could be the first person to write a flashlight app for the 7 phone! Or write the first twitter app!
Will
+4  A: 

First, you forgot RIM (Blackberry's OS). You will find this graph usefull to analyzie your audience (I think the graph is for the USA only): Source of the image
RIM- 35% iOS - 28% Android - 9% WinMo - 19%

Microsoft Phone 7 will soon reach the market with new devices so it is hard to tell what market share they will take. Their IDE for Windows Phone 7 is free and it supports C#.

Can't say much about the other OSs other than the fact that iOS has the most extensive store and fanatic fans that are willing to buy those apps- but that info is only from what I read on the net and see from friends around me.

You may find the beginning-phone-applications-development question helpful as well.

Shaihi
Youre right! I forgot Blackberry's RIM, but I don't know if it has free development tools, whjat language to use or if it has a marketplace like Android
David Conde
I am not familiar with RIM as well, but you should add it to your list and consider it since it's market is very big in the US and maybe in the rest of the world as well.
Shaihi
+1. Great answer by providing actual data!
WinnerWinnerChickenDinner
+3  A: 

Windows Phone 7's API will be based on C#, but most of the other stuff about it is still speculation.

Android has the lowest cost of entry, essentially free - and will use Java (which is very similar to C#).

The iPhone has a higher cost of entry - you need to own a Mac (or somewhat less legally, a hacked together OSX install). Plus once you've devloped your app it costs $99 per year to become a registered developer, allowing you to put the app on actual phones, and sell through the App Store. You'll also need to learn Objective-C, which uses a syntax which is a little different to C# and Java.

On the flip side to this, the iPhone tools are very good, and the market is huge, there are also some good online free courses (including the videos of the Stanford course available on iTunes).

Don't know much about the Nokia toolset, and I wouldn't start developing for old-school Windows Mobile now - it's a dead-end.

RickyTheGeek
+1 : I have no problem with Objective-C, since I used to develop on C++, and I think they're pretty similar, still I think that due to cost limitations, I'd stick to Android, thanks for your answer, its been really helpful
David Conde
+4  A: 

If your plan is to create and market Paid apps, versus just free ones, don't forget to also consider and evaluate potential revenues and existing competition, instead of just your development cost of entry.

My local, and not necessarily statistically significant, sample shows a larger number of iPhone developers making more money than Android developers. The amount of money to be made, if you produce an app just near the top 10% of apps in many categories, may be well over enough to amortize the higher initial costs of a development system, certificates and testing with iOS devices.

However, for iPhone development, you may have to create a stand-out app, as many app niches in the App store are already filled with several dozens of apps. The absolute number of potential competing apps in the Android store is far lower in many areas. You will need to evaluate the competition in your area of expertise or interest.

hotpaw2
you've made a very interesting point, but is not, at least currently my case. Im a system developer/architect, I build internet based systems, desktop, web and mobile are the technologies I use for presentation. Consider it the start of a new user interface to my applications
David Conde
+1  A: 

There are also cross platform options, such as PhoneGap, which may be worth your consideration.

Matt Lacey
+1  A: 

Hi David,

With all technical considerations being roughly equivelant, the most "profitable" platform would have to be the one with the largest untapped consumer base for the particular app(s) you intend to develop.

Two factors come into play which you can assess

  • Size and growth potential of the market. There are plenty of charts and opinion articles around on this to allow you to make an assessment. If you can't find them, just drop those 4 topics you listed into google alerts and watch the incoming articles to your mailbox for a while.

  • Saturation of the app marketplace, in particular in the markets your app addresses. Your own market research would be best at identifying this.

The only other consideration which may apply to specific types of apps would be if there is a fundamental feature your app requires of the platform, and whether respective platforms support it. For example you won't get far making a flash based player on iPhone.

Mick N