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.

As per the question title, I'm interested in starting up a new side project and I'm currently looking at doing a bit of mobile development as said project. I'm actually in a bit of a good position right now as I have a blank slate in front of me (i.e. not locked into a phone already) but on the same token, I also don't want to invest too much money into hardware and the like since this will likely not be a money making venture.

As such, which platform provides the best flexibility in terms of experimentation and learning opportunities? Likewise, what are some useful resources to assist in the process?

share|improve this question
add comment

4 Answers

up vote 7 down vote accepted

There really are three choices IMHO: Apple's iOS, Windows Mobile and Android. Each has it's strengths and weaknesses as of 17 Feb 2011:

iOS: $1500 or so barrier to entry; you need at minimum a decent mac and an Apple Developer Account; iOS device strongly recommended but not required. Unless you are a mac desktop developer, you probably have never written any objective-c. Advantages are it has been around the longest so there is probably the most help available and it has the largest market so your version of iFart can make you $$$$ faster. Also quite sexy.

Android: Basically no barrier to entry -- presuming you have a pc of any sort, you can grab the development environment (eclipse) and emulator for free. Also has good market penetration and a growing community. Code is written in java which you probably already know. Can get cheap handsets with pay-as-you-go contracts to test hardware with. Pretty decent market penetration, but big emphasis on free. So your droidFart could make you famous but probably not rich.

Windows Phone 7: No barrier to entry if you are already a .NET develop as you probably have the toys. Minimal barrier otherwise [presuming you are on windows] -- you can build and test your app using the free Visual Studio Express SKUs. Very new so there are more rough edges and fewer features than one has with 'droid or with iOS. Penetration limited, so your winFart will neither make you famous nor rich.

I'd generally go with a platform you are comfortable with and have the toys to work with at first. You can then expand from there.

share|improve this answer
    
Right now the Android is the one I'm eying as it seems to have the lowest cost of entry, but there is still that big question in regards to what to do about a phone to work with though. Likewise, the Apple App store is a bit of a concern as I've read a lot over the years about apps getting rejected. –  rob Feb 17 '11 at 16:31
1  
I'd generally contend that the main work will be in the emulator. Phone is just a sanity check. Personally, I wouldn't want to use my main phone as a QA environment as it is such a crucial tool. –  Wyatt Barnett Feb 17 '11 at 16:36
3  
For iOS, the simulator is NOT an emulator. It's a phone-looking shell on the native mac environment. It's not at ALL simulating real memory or performance conditions. It's good for laying out content, transitions, etc, but real testing on real devices is totally critical. –  Dan Ray Feb 17 '11 at 16:49
    
@Wyatt - Good point but that also seems to be another point in favor of the Android or Windows Phone 7 as you really do need to have some sort of Apple hardware at that point to be running OSX on for development. Another point worth mentioning might be the developer accounts for Apple vs. Google since Google proves to be on the cheaper side. –  rob Feb 17 '11 at 16:56
1  
In addition to what @DanRay mentioned about the iOS being a simulator and not an emulator, another reason why the phone is not just a "sanity check" -- depending on the type of app you're writing -- it may be very dependent on physical features of the phone. Not only can you miss usability features by "simulating" touch with the mouse, you also miss real testing with the accelerometer, compass, etc. –  Mark Freedman Feb 17 '11 at 17:37
show 1 more comment

The choices (in order of preference):

  • Android: zero entry barrier, all tools are open source. Tools run in any major OS environment. Development in normal programming language, that is widely used (Java). As far as business opportunities go, it's the fastest growing market (over +3000% last year). Downside -- fragmentation (Android version, screen resolution, density and aspect, hardware capabilities).

  • iOS: used to be best for making money, but now it's not growing, yet there are tons of ppl developing. Software can only be developed using Xcode, run on OSX (so you need some $1500 for MacBook Pro), you also need to pay subscription fee of $99/year. Development is done in Objective-C, which apart of being used for iPhone is a dead language. Advantages of iOS -- no fragmentation, one model to rule them all...

  • WP7: the big unknown, so far almost non-existent market, but that may also mean, that you have lot of room to grow. All the tools are free, although you have to run them on MS Windows. The programming language is C# with .NET framework, so it's very much used and alive. MS-Nokia alliance might give it real push forward, but that's really hard to predict.

  • BlackBerry: still big in US, still big in high-end market. But on it's way out. Hard to work with. It's Java but deployment process is rather complicated. No direct access to internet. Also RIM already announced that they will discontinue BlackBerry OS, and use QNX instead. I wouldn't recommend BB until it's future is clear.

  • Bada: I'd say waste of time, Samsung seems to be more committed to Android.

  • Symbian: Still the biggest market share globally, but having in account last week news, no future.

  • MeeGo: Dead before it even had a real chance.

share|improve this answer
1  
-1 for the iOS entry. You can develop for iOS on a Mac Mini easily enough, which is a lot less expensive, and Objective-C is used for pretty much all Apple programming. In addition, I find the last six words tasteless. –  David Thornley Feb 17 '11 at 17:18
1  
@David: btw. developing something specifically for OSX? Who'd care about developing for some obscure OS, which has less than 2% market share? –  vartec Feb 17 '11 at 17:26
2  
@David: As for tastelessness, I find the cult of Mac tasteless. –  vartec Feb 17 '11 at 17:28
1  
@vartec: MacOSX market share is considerably over 2% market share in the US, and there's a whole lot fewer developers for that market. Tastelessness is subjective, admitted, which is why I downvoted rather than flagged offensive. –  David Thornley Feb 17 '11 at 18:25
1  
@vartec: About the same rounded to 0% as the current sales share of WP7, Meego and maybe Bada as well, which you did list. –  hotpaw2 Feb 18 '11 at 23:48
show 9 more comments

For iPhone/iOS, I'm not sure about all these people talking about a $1500 barrier-to-entry. I know several developers who started with an used Mac Mini on a KVM, plus an old used iPod Touch, plus $99 to Apple. So about half to one-third of that, unless you are addicted to only shiny new toys. Even less if you already have a Intel Mac available in the family.

You will want a test device or phone for Android, webOS or WP7 as well, so those environments will also have some costs to do much more than mockup learning exercises.

I would go with which device or smartphone you actually want to use, as you will understand those users and their UI needs much better as you use it.

share|improve this answer
add comment

Go for Android. No investment at all. What you need is, Eclipse and a few plugins.

share|improve this answer
2  
Hi Vinodh, you'll notice that all the other answers here are much longer than yours: that's because we encourage people to explain their answers backed with reasons and experiences, not to provide one line opinions. Please take a moment to re-read the page you skipped when answering, How to answer, and consider elaborating a little further. –  user8 Jun 12 '11 at 8:19
    
Please elaborate a bit more. –  Dynamic Aug 14 '12 at 14:39
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.