views:

2773

answers:

19

What mobile platform should I start learning? What matters is:

  • ease
  • popularity of platform
  • low cost of SDK and actual handheld
  • other criteria...
+16  A: 

This one is easy (even for a Windows Mobile developer like myself):

iPhone

The technology underlying the device is nothing special, but Apple has provided a convenient and reasonable mechanism for paying developers while locking down the device to the extent that software piracy is (as far as I know) totally impossible [update: or apparently just difficult]. Who wouldn't want to write software for a rapidly growing market like that?

Windows Mobile devices could have done this 6 or 7 years ago, but nooooooooooo ...

MusiGenesis
+1 from another WM developer! The only problem is requiring an Apple computer.
Stevo3000
Maybe I should have said "ESPECIALLY for a Windows Mobile developer..." It still irritates me that Microsoft could have done something like the iPhone years before Apple, but they couldn't be bothered.
MusiGenesis
I agree, I would LOVE to see more apps developed for the Pre (being as I have one, stupid Sprint...), but if you are a developer, are you going to write code for 50% of the market, or 5%? (not actual statistics, used as a metaphor)
amischiefr
For awhile I was developing the next version of my app to run in regular Windows and in Windows Mobile. Until I realized that the 3 copies of the WM version that I'd be lucky to sell in a year wouldn't make the effort worthwhile.
MusiGenesis
software piracy for the iPhone is not "totally impossible", no where close actually.
Petey B
@Petey: how widespread is it?
MusiGenesis
Very. I've got google alerts setup for my app, NetSketch, and I get emails almost every week listing torrents including cracked versions of the app. Some torrents have 100s of cracked apps for download in one package. Hopefully Apple updates the DRM scheme soon!
Ben Gotow
+3  A: 

I don't really like Symbian. Popularity and ease makes iPhone perfect.

I also heard Android it's a cool platform to develop, but I haven't try it myself and it's not so popular yet.

yeyeyerman
+15  A: 

Android

Linux kernel. The sdk is low cost (free). Java is considerably popular language.

rangalo
+13  A: 

I think 3-4 platform have a future. But depends what platform do you like and how you like freedom in distribute your applications :)

  1. Windows Mobile (my favorite)
    • C++ or .NET
    • free distribution, just like normal applications
    • Microsoft have market, too - here
  2. Windows Phone 7
    • .NET and Silverlight
    • through Marketplace
  3. Android
    • Java
    • through Android Market (fees) or like normal applications
  4. iPhone
  5. Java
    • J2ME or JavaFX
MicTech
I'm a WM developer myself. Your answer has warmed my heart.
MusiGenesis
There's no fees for android, since you don't actually have to distribute through the market. You can distribute the same way you do with Windows Mobile.
GWLlosa
Since the iPhone fee is so low ($99/year) it's effectively zero for anyone serious about mobile development. The actual SDK is of course free...
Kendall Helmstetter Gelner
GWLlosa and Kendall Helmstetter Gelner thanks for your comments.
MicTech
Also add that for iPhone, you need a Mac for a development machine. If you don't already have one, that's a large intro expense.
ctacke
Wow, I didn't realize you needed a Mac as well as an iPhone. I need to start dating an emo chick, I guess.
MusiGenesis
Windows Mobile, as the only platform an OEM has to pay for, is almost certainly doomed. Follow this advice at your peril. The biggest OEMs (aside from Samsung, who deliberately use every platform going) have always shunned WinMo. HTC, the biggest WinMo manufacturer are extremely keen on Android now and MS have turned their attentions to LG. However, ask all the other OEMs that MS have paid to build handsets for them and you'll get the same story - it's a nightmare. LG will discover this too and abandon the platform as well.
Mark Wilcox
@Mark: I hope you're wrong, but you're probably not.
MusiGenesis
You also need to share 30% revenue to Apple if you are selling iPhone apps.
jpartogi
How can you justify not even mentioning Symbian?
Dynite
+4  A: 

Here's the platforms in order of future popularity:

1) iPhone

It has three moats anyone has to cross to catch up - accessories, apps, and hardware add-ons

Accessories for the iPhone and touch can be found all over. They have iPhone/iPod docking radios in many hotel rooms now...

Apps of course, Apple has a deep lead in - but the lead is greater than it would appear because in addition to all of the apps, there are now tons of developers with iPhone experience. Sure some of the initial apps are meaningless fluff but there are now countless categories with deep teams of people working on real applications.

The last moat is new but no-one is close enough to doing anything similar that they can prevent it - and that's the ability with 3.0 for companies to build specific devices and talk to them over bluetooth and the dock connector. The TomTom car iPhone dock (more than just a dock, it also houses a more powerful GPS reciever the TomTom app can make use of) is the tip of the iceburg in this regard. Medical devices, analysis tools, etc.

2) Palm Pre

The Palm Pre has the advantage that a lot of Palm users that really want to stick with them have a great upgrade path, and the Pre has the same advantage Apple has in that they are building a single device themselves that makes it easier to build an application that takes full advantage of the platform and really fits in well with the philosophy of the device. Only the more limited nature of the SDK is preventing a much larger selection of apps, but I think we'll see this platform grow pretty well. The only danger is, I can see them being bought out my Microsoft and then they are toast.

3) Android

Android has the advantage of more devices. But that also makes it a lot harder to build and test apps, and to write apps that take best advantage of specific features. I think there will be more physical devices around than the Pre but I'll bet in three years there's more application use going on with the Pre than the Android platform.

For ease of development, I'd rate the Pre first (unless you are not very familiar with CSS), the iPhone second, and Android third (simply because not as many resources exist/will exist to help you with Android development, it has about as large a framework set as the iPhone to make things easy for you).

Symbian and Windows Mobile are simply out of the game. Unless they buy one of these three they are done as a serious platform for mobile software, despite how many devices may be around right now (see: Android issues regarding device range). They also just don't have either the framework or IDE richness these three platforms have and are growing every day...

Kendall Helmstetter Gelner
"In order of future popularity"? You have a flux capacitor? Symbian outsells all three of those combined, plus a huge margin on top of that. And I wouldn't bet on anything for the futur of mobile - it changes a lot, and quickly. And to say that WinMo doesn't have "IDE richness" says you've never used Visual Studio.
ctacke
iPhone is probably always going to be a premium device with a limited but very profitable market share. That means high-income consumers with money to burn on cheap novelty apps - so it isn't all bad, but don't expect it to take over the world.Palm Pre is nothing more than hype at this point, so it's a brave prediction. You can develop web apps on all the other platforms too, so I don't see the advantage.Note Symbian is getting Qt, which is an even nicer framework than UIKit/Cocoa.
Mark Wilcox
@ctacke: Amen.
MusiGenesis
@ctacke - I have used Visual Studio. Note I said EITHER the framework or IDE richness - in Windows Mobile, they have a powerful IDE but the frameworks are just not up to the level the others are at - even Palm!!
Kendall Helmstetter Gelner
@Mark - Now palm pre is out, and has limited numbers but we know more about the environment. It's not right to say "you can do a web app on anything" because the pre is using web languages to write what I'll call "native interpreted apps". They have a range of system calls you can make, in a way that "web apps" on other platforms either do not or do in a more limited way (like on the iPhone).
Kendall Helmstetter Gelner
Palm Pre died before it started living...
Robert Koritnik
I would not count it out yet! These things take a little time. WHat you are not seeing now is someone buying the technology to get back into the game...
Kendall Helmstetter Gelner
+2  A: 

Apple really has done a Microsoft in creating an application platform that will lock in customers for years. There are several apps that I would have a tough time giving up at this point.

I was making a similar choice, and ended up making the investment to go with the iPhone. The benefit has been that I really like the Mac - this is my first, and developing has been a lot of fun. I'm not looking to sell to the masses though, I am writing applications that support businesses with mobile content. Android would be my second choice, and I wouldn't even consider WM or Symbian.

Joel Hooks
+7  A: 

Popularity: worldwide numbers say that JavaME is clearly ahead of everybody else. Symbian a distant second. iPhone even more distant third, far far away. However, if you're targetting a continent or a country or a language, then the numbers can change dramatically.

Ease of development: Objective C is a cool and powerful thing but remember it is 20 years old. iPhone is easy to develop for but Android development is just as easy, free and multi-platform. JavaME is a nightmare except if you target a very limited number of different handset models. Native Symbian OS C++ has the worse reputation in the market but it's clawing back inch by inch, year after year. Symbian also the huge advantage of letting you choose which language you want to develop in.

Cost of tools: JavaME would be cheapest, followed by Symbian, Android then iPhone.

Other criteria: well, a lot depends on what applications you want to develop.

No mention of Palm's WebOS as it barely registers as a blip on the radar, from a commercial standpoint, at least for now.

QuickRecipesOnSymbianOS
What is wrong with something being 20 years old? That's not a reason in itself.
John Topley
I'd like to add that most people here are probably over 20 years old. We call them "mature" or "experienced". Same goes with Cocoa, BSD, etc.
jbrennan
:-) my bad. didn't mean to say that a 20 year old technology is worth less than a more recent one. I mostly wanted to remind people of the fact as there is a tendency to over-hype shiny new things.
QuickRecipesOnSymbianOS
+6  A: 

Check Google for smartphones market share. Here is one from Gartner. In short, sales stats for 2008 are (sales is in thousands of units):

Operating                2008        Market          Growth
System                  Sales         Share       2007-2008
-----------------------------------------------------------
Symbian              72,933.5          52.4%           -6.1
Research In Motion   23,149.0          16.6%           96.7
MS Windows Mobile    16,498.1          11.8%           12.2
Mac OS X             11,417.5           8.2%          245.7
Linux                11,262.9           8.1%           -4.2
Palm OS               2,507.2           1.8%           42.2
Other OSs             1,519.7           1.1%           13.1
-----------------------------------------------------------
Total               139,287.9         100.0%           13.9

So, reading this, Symbian devices are biggest market. Iphone and BlackBerry are fast growing
platforms. Android came on market late last year, so it's hard to say how popular would it be.
My pick would be:

  1. iPhone - because it is most uniform platform - same display and keyboard, similar other features. Very popular web shop if you decide to go professional. Fast growing market share, possible number two in next year or two.
    Minus is that it requires Mac computer for development.
  2. Blackberry - relatively small number of different devices (different resolutions, different keyboards), but it complicates development because you need to take into account those factors. Second by sales number, keeps very high growth rate.
  3. Symbian - by far largest number of phones, but from several different vendors (Nokia, Samsung, Sharp, Sony Erricson, ...) with number of different hardware configurations. Each vendor has its own developer program you need to join to get access to device specific SDKs.
  4. Windows Mobile - still sells large number of units, very good development tools.
  5. Android - ? On hold until it gains any significant market share.

Edit:
Re Mac comments:

  • Cheapest Mac Mini (1Gb RAM, 120Gb HD) without mouse, keyboard and monitor cost as much as mid-range Dell or HP laptop ($599). So, minimal hardware needed for development cost at least two times more than Windows based system. iPhone development requires more expensive equipment than any other smartphone platform. And that is downside.


Re Symbian comments:

I know about symbian.org and open source initiative. But:

  1. Process is very slooow. It started more than 1 year ago (June 2008) and it's still beta. This is deal between very big companies and it will probably pass some time before they come to final agreement.
  2. Now, if you want to develop for Symbian devices, you need to go to every vendors developer site to get access to documentation, examples, SDKs, tools ...
  3. If you plan to go professional, every vendor has its own shop and set of rules that you'll need to comply.
zendar
Why is requiring a Mac a downside? They're great computers and don't just assume that everyone uses a PC!
John Topley
I'll second John's comment. Macs are first-rate hardware running first-rate (Unix) software. The development, interface, and debugging tools (all free, btw) are extremely powerful and well worth the price of a Mac Mini (if you don't have the budget for anything more).
jbrennan
Note that Symbian moving to the open source Symbian Foundation mode of operation is likely to decrease Symbian platform fragmentation. UIQ and MOAP-S were essentially discontinued and whatever is coming of the Symbian platform is mostly based on S60. Of course, nothing prevents manufacturers from doing their own add-ons, but ideally you can achieve *most* of your development needs for upcoming Symbian devices on a single development platform deriving from S60.
laalto
If you don't already have a Mac, but you do have a PC, then the downside is the obvious cost.
ctacke
i would be developing for the iPhone right now if it weren't for the fact you need a Mac, so I would consider it a downside, obviously this wont apply to everyone.
Petey B
beggs
+3  A: 

You could also look at the web apps path:

  • XHTML Mobile Profile / XHTML Basic, to get access to any WAP 2.0 phone browser (all smartphones, most data-aware phones). Best look at the dotMobile mobile developer's guide.
  • Traditional web development with progressive enhancement, optimized to small screens, to target current smartphone platforms.

It's a trade-off between the ability of the native SDKs and the ubiquity of the browser platform. I know a lot of developers dismiss web apps out of hand as too weak, but the platform has definitely grown and is worth investigating. Old assumptions like "it can't go offline" or "it can't access local data" are not necessarily true anymore.

Joeri Sebrechts
+3  A: 

iPhone, obviously. Putting your effort into another platform right now would just be fool's errand, or at best would be risky. Perhaps the Pre or Android have potential, but the iPhone is way past the "potential" stage. Blackberry is another strong option, as they are already big and still have great things on the horizon, but the platform itself is limited and I don't know that a BB user is going to be grabbing as many apps as an iPhone user is.

Here's why I think iPhone, based on your criteria -

  1. ease of use - the iPhone may be the hardest b/c it's unlikely that you would already know Objective-C. However, it's an Object-Oriented Language and Cocoa is an MVC framework. After you get used to the syntax, it's not much different than what you probably already know.
  2. popularity of platform - this is an easy one. The iPhone may not be the most ubiquitous, but it certainly is the most popular for people who actually use their devices to do things aside from make phone calls and send SMSs and are likely to want to be interested in whatever application it is that you are building. Nobody buys apps for the RAZR.
  3. cost - The cost of iPhone development is owning a recent Mac and paying Apple $99. If you don't already have a Mac, they are very affordable for a software developer. People will make a case for Linux here but it's a non-issue, if spending $1000 is a problem for you and you are a software developer you probably aren't making the best career choices.
bpapa
+12  A: 

Now that Nokia has bought TrollTech(Qt) for the purposes of creating a great mobile platform on top of Symbian, you'd think that the OSS crowd would at least mention it.

Symbian has a huge market compared to all of the others. Qt is the backbone of KDE, allows easy cross-platform development, and is very well designed.

You'd think that:

  1. A huge market
  2. A great, LGPL'd cross-platform framework
  3. An app store

... would be a future hit just waiting to happen. You certainly have a better chance of making money than being one more app in tens of thousands of others, with users expecting to pay no more than $0.99.

Symbian is also starting on the path to opening up the code. Actually, as the Qt mobile platform matures, the underlying OS may not really even be that important.

darron
It is really startling how ignorant so many people are of Symbian. Despite it perhaps not being currently the most popular OS, the fact that it can be ignored from accepted answers on questions like this makes you want you to shake some reality in to people.
Dynite
+4  A: 

All one needs to do is to note the tag counts, on the top right of this question, in order to get a subset population (at stackoverflow.com) of where the popularity is.

As of my comment, the tag counts were:

  • iphone × 4829
  • windowsmobile × 606
  • android × 523
  • j2me × 301
  • symbian × 106

The are other factors, obviously. Do you enjoy writing for Windows Mobile over iPhone or J2ME? Do you know J2ME but want to get into iPhone development? I dont think there is any one correct answer, but the tag-counts do say something about popularity.

Optimal Solutions
Yes, they say something about developer popularity and availability of other sites for discussion. There are 100's of thousands of Symbian and Java ME posts on Forum Nokia, and a lot of Android discussion on mailing lists - iPhone alternatives are not so popular...Also developer popularity isn't necessarily a way to judge if something's going to make money. Indeed in a crowded app store environment, quite the opposite is likely to be the case.
Mark Wilcox
+3  A: 

Programming for mobile clients has historically been a nightmare. The fragmented nature of the mobile world exacerbates any problems you have encountered in the desktop/server market.

If your goal is to make money as a small developer you should focus your efforts as much as possible. To this end the iPhone is the only real choice, the cost of testing, porting and certifying your application on J2ME, Symbian or WinMo very quickly overcomes the potential market advantage these platforms have.

You also need to consider the technical requirements of the applications you are going to develop. For example while J2ME is 'supported' on more handset than any of the other possibilities the security model restricts the usefulness of J2ME if you want to do 'cool' things (at least this has repeatedly been a problem for me). The fragmented support for JSRs is also a major problem. J2ME can run on a lot on non-SmartPhones but do these handsets support the features you want.

Also consider the handset distribution across your target audience. Location, income and age of your potential users will greatly determine the handsets that you can and should target.

My own experience is that mobile application programming is a loosing battle on Symbian, WinMo and Brew. It is a organizational nightmare on J2ME. But many people are making Money on the Apple AppStore. And Nokia now has Ovi... RIM has a store, WinMo will have a store... Maybe Apple's success will push the other handset vendors to get their act together and make it easier.

A note on your criteria about handset cost: MTK (Most of the Chinese/Tawanese knock-offs) would be the cheapest, but you can only install on the handsets at manufacture time so it's not really an option... Java handsets can be cheap, but the porting issue is a pain. One international company I worked for spent more than half a million on handset acquisition and client porting every year as they had to test their applications on each new Java handset and even the same handset with different firmware (just enter N95 in the Wurfl and you can see how many different firmwares there can be when the European operators do silly things like install custom firmware so the Vodafone UK and O2 UK N95 are not the same.) WinMo can be the same, every new release has different API(s) and the OEMs change things... If you count the cost a acquiring even a few Java or WinMo handsets to ensure your application works across different OS editions and firmwares then you have spent a tidy sum. Might as well get an iPhone or two.

So, my suggestions?

  1. iPhone
  2. Symbian (2 & 3 could switch depending on features you need)
  3. J2ME
  4. WinMo
  5. Android
  6. Brew (if you are in the Americas)
  7. RIM
  8. Flash
  9. MTK
beggs
+1  A: 

Now that Safari supports advanced features like GPS location via JavaScript, the best thing to get into is standards-compliant web app development. This way, you can ensure easy updates and compatibility for multiple devices from a single code-base.

Nolte Burke
A: 

Given the size of market share that Symbian phones have (not just Nokia Series 60) that would seem to be a good choice. There are pros and cons though. Symbian has a steep learning curve, steeper than the alternatives. The distribution channels aren't as good but are getting better (Ovi for example, Symbian foundation Horizon).

The iPhone has the cool factor at the moment and a superior UI. The distribution mechanisms still aren't perfect though. You can only sell via the Apple store and they don't have a great reputation for helping developers get their app out.

Android, as mentioned above, is based on the linux kernel. Given the Nokia Maemo platform is coming in phones in the near future, familiarisation with it may do no harm.

The main difficulty with mobile development is portability. It's simply very difficult. Realistically, if you are new to mobile development, it's probably best to pick one platform and run with it.

So, in short, my answer: Symbian.

steprobe
A: 

For a starter point, due to your matters, answer is J2ME

  • ease: java for j2me is quite simple and friendly
  • popularity of platform: billion of devices can run j2me
  • low cost of SDK and actual handheld: it's easy to find a cheap mobile that supports j2me, almost all tools: framework, ide, emulators, documents... are totally free
zeroboo
A: 

I've shipped code on iPhone, Symbian, BREW, Java ME, Windows Mobile, Palm. Personally I enjoy working on the iPhone the most.

All of the above as well as Android, allow you to download and run the SDK for free. I would recommend you try out the ones you think you will like most and run your programs in the simulators. Figure out which one you enjoy and then throw yourself into that.

Michelle Six
+2  A: 

You can look at my answer for a similar question:

A detailed market research about Android and iPhone here

and smart phone market share in first quarter of 2010: smart phone market share

erasmus
+1  A: 

Here is Gartners latest report on the Windows7/Symbian/Android competion. Guess its bad days for Windows 7. Sybian & Android are the ones who will grab the market:

http://www.informationweek.com/news/security/reviews/showArticle.jhtml?articleID=227700245&itc=ref-true

stamhaney