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.
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.
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
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.
i have been writing android applications for a few months, and then i went over to create the same applications for the iPhone. I quickly started to prefer many things about iphone development apposed to android(core data is awesome, holding onto/passing around complex data is easy).
there are many differences which may make either platform easy/hard, but it all depends on what kinds of apps you are making. Some projects may be easier to write on the iOS platform whereas others, Android is easier
Overall, I had a harder time learning iOS development than learning Android development.
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.
Both are going to be just as difficult, but only in different ways. How hard or easy a program is to use is typically determined by the programmer’s effort in making the program “easy to use”.
If you cannot program a complex application, odds are good it has nothing to do with your coding skills and a lot to do with your software development skills. Although it isn’t exactly in-line with your question, I would recommend you strengthen you skill set where it is weakest.
Programming is probably a maximum of 20% of a well run project. The rest is describing the problem to be solved (aka gathering the requirements), creating an architecture which simplifies the chunks of the solution, and testing. If you can code, but can’t handle a big or complex project, it’s because you need to develop your skills in each of these fields (no need to be an expert, but it helps) and you need to know how they work together.
Once you expand your knowledge to the entire process, you will find that big projects just look like a lot of work, but each “next” step is rather simple. There’s a lot of ways you can make all of these items happen, one that I recommend is OpenUP.
I code in both languages and practiced a lot and I would say you can do a lot with the Objective-C language but you should have a pre-known about C so if you are a ‘noob’-programmer I would prefer Java..
If you know .Net,C/C++,Python and PHP you will find Java/Android a million times easier to learn than Objective-C. The IOS API’s are nice but Objective-C is totally different than any other mainstream languages and frankly a pain if you’re used to .Net, Java or C++.