I want to improve my coding skills, so I have planned write a Mobile Application.need to choose between Apple's iOS or Google's Android.
my background: I have done basic programming in .Net,C/C++,Python and PHP in college, so got OOP concepts covered. about my skill level, I just know concepts and basic syntax. But can't write complex applications, if asked :(
So decided to hone my skills, And I wanted to know which is easier to learn for a programming n00b.
A) iOS which uses Objective C B) Android which uses Java
I want to decide based on difficulty level
They're both equally complex, so it boils down to what you're familiar with.
Judging solely based on what you know, Android development will feel easier. The syntax will be close to what you already recognize.
Objective-C has an OO syntax that is unlike anything you have listed in your post. It would take a little while to get accustomed to.
I've been using developing for iOS for a little over a year and for Android for about six months. Both presented their own challenges but at the end of the day I'd say that all things being equal iOS is easier to learn for a few reasons.
1) Interface Builder - Setting up your GUI is a lot easier with iOS because you can lay it out in IB and then link to objects in your code. Saves a lot of time. The closest thing Android has is DroidDraw which doesn't link directly to code and just generates a rough draft on the layout xml files. It's better than creating the views programmatically but falls short of IB's simplicity and robustness.
2) API's - The Apple API's have been in existence longer and have been developed further. Android is definitely catching up but there's still a lot of areas, especially in the mobile centric API's, where Apple's API's are better in terms of what's available and documentation. A lot of low level things can be done by higher level API's which helps reduce the entry barrier.
3) Hardware and OS Fragmentation (or lack there of) - Apple does a lot to push the user base to update to the latest iOS version which is available across all form factors at the same time (iPad being stuck in 3.2 for a while is the one exception). You can very safely target the iPhone hardware platform and achieve cross compatibility with the iTouch and iPad with very little extra work. Android has a huge selection of devices many with device specific OS modifications which can lead to a ton of headaches when testing. There's also the different screen sizes and resolutions to deal with.
I want to stress that I enjoy working with both platforms for different reasons but coming at this from a which is easier to learn perspective I'd have to vote iOS. Of course that's all things being equal. The Objective-C syntax can be hard to get used to, if you're already comfortable with Java then some of the basic Objective-C concepts will be new and may take some time getting used to, plus you'll be reintroduced to memory management as there is no garbage collector like in Java. And lastly as has been mentioned if you don't own (or have access to) a Mac you can't program for iOS.