Which is Easier to code: Android App vs iOS App?

50,534

Solution 1

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.

Solution 2

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.

Solution 3

I have only been a web developer, with a little bit done in .NET (C# and VB), anways my employer wanted to start releasing apps on both iPhone and Android, since the other developer was busy with a major project, was the one put to task to learn both android and iOS (well iPhone SDK at that time).

I first started with iOS. I read a couple books, downloaded a bunch of sample projects from Apples developer reference. I would say it took me about 2-3 weeks before I became a little bit comfortable developing in it.

After a month of developing the app on iOS, my employer wanted me to port it to android. So I did the same process as I did for iOS, read a couple books, downloaded a bunch of sample projects. It took me a lot longer until I started feeling comfortable in android. I just didn't understand it at all at first.

Now after spending a year developing for both platforms, I prefer iOS. I find their documentation amazing, and I just find coding fun on the platform.

I hate android simulator, it is just way too slow, can only test on actual device. I find coding for it a chore. I would say it takes about same amount of time for me to develop an app on either device, but I just enjoy doing it on iOS. Everything just clicks for me

Solution 4

I think you're asking the wrong question. The programming language makes little difference in the difficulty to develop something. The API and how well it's documented can make a big difference. If you've never done GUI, I think I'd start with something that isn't mobile as that makes it more difficult.

Solution 5

I would start with Google's amazing App Inventor, which is the simplest way to make mobile apps.
When using App Inventor, instead of writing code, you visually design the way the app looks and use blocks to specify the app's behavior. It doesn't require any programming knowledge.
You can find more information here.

Share:
50,534
CuriousMind
Author by

CuriousMind

Learning by Doing & Sharing What I have learned. to get in touch, send me an email at [email protected]

Updated on July 09, 2022

Comments

  • CuriousMind
    CuriousMind almost 2 years

    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

  • Erik Kerber
    Erik Kerber over 13 years
    Partially true, you'd have a hard time convincing me that coding Objective-C isn't harder than Java/C#.
  • Max
    Max over 13 years
    Eh, forget the safe option. Jump right in and write a mobile app. Try android first as it's easier to get started (usually need a Mac for iOS stuff), but putting in time on either will be rewarding.
  • Xairoo
    Xairoo over 13 years
    And the Objective-C skill set is not as transferable to other types of applications (non Apple) due to its much more limited usage.
  • bbum
    bbum over 13 years
    Huh? If you know Objective-C, then you definitely know C and quite likely have learned a bit of C++. And you know the Java, SmallTalk, Python, and Ruby object models. Objective-C skills are extremely transferable.
  • CuriousMind
    CuriousMind over 13 years
    Thanks, I have decided to Go for Android because 1) I expect Android will have surpass number of iOS devices worldwide, in long term. 2) It also gives me a nice excuse to learn java.java has lot of boilerplate, And I had been avoid it for this very reason 3) I own a android device, so bit more familiar with platform. Wish me Luck!
  • CuriousMind
    CuriousMind over 13 years
    Tried App Inventor, its good but It should be less dumb. Meaning there should be a way which allows me to 'export' an App Inventor Application into Eclipse. If they add this feature, then I am sold!
  • CuriousMind
    CuriousMind over 13 years
    OpenUP seems interesting but it for single developers? I normally maintain an Todo list of tasks that needs to be done in an excel sheet. Its simple and saves me time than following complex procedures.
  • Edwin Buck
    Edwin Buck over 13 years
    For single developers, it's hard not to do anything other than cowboy coding; however, with discipline, you could do OpenUP. The benefits will be similar to the benefits of having a full development plan. The costs the same as having the same bunch of overhead of a complete project team (being borne by only one man). If you are individually capable of not falling victim to the kinds of problems that can be detected and directed around with a full process (which should cause more inspection of the problem / solution) then you won't gain much more than overhead doing more than cowboy coding.
  • Ivan Dossev
    Ivan Dossev about 12 years
    Basically same story with me, I've been in the Android waters for a few days now and starting to feel exactly what you described above. Android is a more powerful platform compared to iOS (less enforced restrictions on what you are allowed to do), but development for iOS is much more polished. Android is like a cookie jar that had a lot of hands in it and there's crumbs all over the place. I'm sure there will be features I love about both platforms, but from experience I can say that objective-c is very flexible.
  • fishinear
    fishinear over 11 years
    I would have to disagree with this. Yes, Java is somewhat easier, but definitely not "a million times". Objective-C uses the same OO principles as C++, and has C as a subset, so it is definitely not "totally different". The main thing that is awkward in Objective-C is the syntax of method invocations, which you get used to after a while. The main advantages of Java are garbage collection and the "everything is an object" concept. But as others said, it is more important to look at the differences in API's.
  • Bogdan Alexandru
    Bogdan Alexandru almost 11 years
    I have programmed in C, C++, Java, C#. In my opinion, Objective-C has only one unnecessary weirdness that takes time to get used to: the message style syntax. Instead of object.method(parameter) you write [object method:parameter]. Also the memory management is in my opinion the biggest weakness of this language, because you need to do it manually; although, the new standard ARC feature makes it easier. Other than that, it's just pure C with OO add-on. Now I'm really starting to like the message-style feature because it offers named parameters which I find very cool and helpfull.