Developing Apps For iOS And Android – A Comparison
Having developed apps for iOS and also for Android, in this article we’ll look at some of the differences between the two, when it comes to developing apps for the App Store and Android Marketplace.
First of all, when developing for iOS, the programming language is in objective C. This is the reason why Apple products are so stable. Objective C uses frameworks that allow you freedom to use code constructively, but would make life more difficult for someone trying to make a virus for example.
It is possible to use a 3rd party intermediate SDK (software development kit) programming environment, which may use Lua as the main programming language for example. This is then converted to Objective C when the app is built. The advantage to this would be not having to learn Objective C, but bare in mind that after iOS operating systems upgrades there are sometimes bugs that can pop up more than if you programmed the app in Objective C. So if you use a 3rd party SDK, check your apps after every iOS upgrade.
Both iOS and Android are incorporating the ability to use other languages, such as Java and C# into their SDKs now, so if you prefer to program in a specific language it is a good idea to read up on the SDK programming information for which languages they can accommodate.
For any absolute beginners reading this post thinking about starting out in programming mobile apps for Andoid or iOS, I would personally recommend learning straight C first, as many languages such as Objective C, C#, C++ and Java are extensions of this base language. In fact, some programmers swear by using C only as it is the most portable language. This is of course just my personal opinion. You’ll find that most programmers support their chosen language as if it’s a football team. A Java programmer once told me that Java is the best language in the world. I personally don’t care which language I use as long as it enables me to get the project done.
On Android you have a greater choice of languages in which to use. With their SDK you can install the components to programme in your chosen language.
The iOS SDK is also free with the advantage of not having to download so many needed components. As I mentioned before, the iOS SDK is now also incorporating other languages into their SDKs which will convert to Objective C.
With both SDKs you can practise and even get apps ‘ready to go’ before you join their developer program.
As for the cost, the big advantage of the Android SDK is that it is only (at the time of writing this post) about 25 pounds or was it dollars?Â (can’t remember which) for lifetime membership. No other yearly costs. The iOS developer program costs about 99 dollars per year in comparison. It has to be said however that the devoloper support is very good. I have used the developer help service when I’ve had a problem and they got back to me straight away.
As for revenue generated from selling apps, this will depend on many factors. Even though the iOS developer program is more expensive it is easier to sell paid apps in the iOS market. About 40 percent are free apps, compared to 70 percent of apps being free on the Android market.
With Android you can put your app up straight away without any approval process. This is good for speed and convenience, but it does mean that the average quality of apps are lower than iOS apps. With iOS apps there is a week to 2 weeks wait before being approved and will be rejected if the app is not of a sufficient quality to pass.
As for the submission process: It is far, far easier to submit your app to Android. You build an apk file and download it to your phone to test, then upload an apk file to your developer account and you are away.
With iOS I initially found the submission process harder than actually programming apps. There are keychain, certificate requests and technicalities galore. However, once you’ve made a checklist of the procedures and put up few apps it becomes easier.
When it comes to linking your developer account with your bank account for payment, both have quite simple procedures for this. With iOS they can pay directly into your bank account. With Android you have to open a Google Marketplace account.
Both platforms make it easy to alter details of your app and edit details. With Android however, once you upload an app you cannot delete it, you can only disable it. With iOS you can specify dates with your pricing policy. In iOS you chose between set pricing tiers, whereas with Android you can modify the price to your heart’s content.
On a side note, I’ve just put an app up on the Amazon marketplace and it is the smoothest submission process I’ve seen so far. Submitting apps to Amazon uses the simplicity of the Android submission process, but with the 2 week quality check as Apple does. You have to pay to join the Amazon Developer Program. This was free for the first year at the time of writing this post, but the price is said to be set to 99 dollars per year. This could have changed at the time of reading this post.
So, which one is better to program for? Well, I’m certainly not part of the Apple versus Android crowd. I personally like both. They each have their advantages and disadvantages.
Bear in mind that the app market is flooded now. It is very hard to launch a hit app right now unless you have a team of developers working on a big app that is exceptional or get lucky. Therefore, my advice is to set the bar high for your goals but don’t try and predict sales results. It’s better to program apps for fun and then any financial reward is a bonus. The current trend for putting apps up for free with in-app purchases are making it hard to price apps now. I think this trend may turn on itself eventually, with people looking for apps where you pay for what you get, without any hidden costs.
I hope that this post helped you in some way. Please search the Internet for other opinions as this is just my subjective opinion. And of course there are many other platforms out there and also emerging new technologies to consider.
A well explained post.. I like the way author has framed the text and the linking . Keep up the good work !!
Did you really just make the claim that Objective C would inhibit the ability for one to create a virus? In your very first paragraph you lost all credibility as a programmer. I simply cannot believe the owners of this site allowed such a thing to be posted.
No, the article said that ‘frameworks’ would inhibit (not impossible though) the ability to make a virus, not straight Objective C without any stable framework around the language. Yes, viruses exist for Macs, but a substantially lower amount than Windows users would experience.
If you doubt this, just ask a group of friends who use Macs how many viruses they’ve got over the last few years and then ask a group of Mac users . . .
Trojan horses and phishing are still hazards for Mac users of course.
Approximately, the ratio of PC viruses to Mac viruses is 12:1 and most of the Mac viruses are Trojans and Safari browser hacking. Add to this the fact that Mac users rarely use anti-virus software.
It is possible though for a Mac to get a virus. But I still stick by the fact that frameworks produced by Apple ‘inhibit’ the ability to easily make viruses compared to the comparative process of making a virus for a PC.
I once made a PC virus when I was younger (not released – just a bizarre experiment) just to see whether it was difficult or not. It took just 16 lines of code, without any library / framework restrictions to raise a red flag. I’m not saying that this virus would have made it through virus checking software of course. Virus programmers in a dark sort of way are experts in this area and they would know more than me 100 fold.
Interesting comment and argument though, as you are correct in pointing out that it is not impossible to create a virus, even with the frameworks in place. I do not disagree with you one bit, but I do stand by the fact that it is more difficult to create a virus aimed at Apple because of framework restrictions built around objective C. I love constructive criticism Clayton, I respect your opinion 🙂
If you have a haymaker come back comment, let it rip buddy, with examples and links, as I enjoy friendly debate 😉
“Following April’s Flashback Trojan – which hit more than 550,000 Macs – Apple recently removed from its website the claim that its Mac operating system is not susceptible to PC viruses.
As noted by Sophos analyst Graham Cluley, Apple’s “Why you’ll love a Mac” website no longer uses the phrase “It doesn’t get PC viruses” as its tagline. Instead, it says “It’s built to be safe.”
The supporting text, meanwhile, no longer says: “A Mac isn’t susceptible to the thousands of viruses plaguing Windows-based computers.” That line has been deleted and now it says: “Built-in defenses in OS X keep you safe from unknowingly downloading malicious software on your Mac.”
Apple did not immediately respond to request for comment.”
“Credibility” issues aside, I must say that this is incredibly helpful to me. I have some (ancient) C++ experience, but no little-to-no java or other language experience. I am a dabbler, with some experience with various programs in CS5, some experience with web design, and some experience coding. I thought that just plain jumping in with both feet would be relatively easy, but I have found that most tutorials/documentation for training purposes are outdated.
Specifically, the only tutorials I can find ANYWHERE by simple google search are the infamous “Hello World”, and even that has completely unexplained aspects. Granted, with some limited knowledge, I can figure it out. To compound the issue, most are a couple to several years old, meaning the interfaces of the software as well as the Android versions have changed since the writing of the tutorial. But the complete and utter beginner friendliness I have found (with the best options often being free) for so many tech, coding and web development topics have me completely spoiled.
Thanks again for the info, and I’ll look to find more good content from you as I have more questions.
Glad that you found the article useful. I was at this junction before I started to develop apps. Thank you for your comment 🙂
Here is a more in-depth article from a guest post about whether Macs get viruses or not:
You’ll see that it is harder to put a virus onto a Mac, but there are viruses on Macs and it’s worth getting protection.
I’ve learnt a few extra things about Macs getting viruses through this debate, so it has been useful to me too.
As for the ‘credibility’ thing . . . I judge people on what they’ve produced and the actions they are taking, plus the calculated risks they take in life, when it comes to producing work. If someone fails but they are trying, I give equal respect as I would to someone who has tried and succeeded.
The only way a person’s credibility takes a dive on producing work for me is if someone is blowing hot air but producing nothing. Anyone out there that is trying their hardest to produce quality apps, or get into producing apps gets a thumbs up from me 🙂 This is aside from any disagreements about whether it’s easy or not to place viruses on Macs etc. lol
Anyone who has extra tips on developing for iOS or Android devices, I’d love to hear your perspective on things 🙂
From research I’ve done on the Internet, there are no viruses that have infiltrated the OS operating systems of Macs except under laboratory conditions.
However, Malware, such as Trojans and malware attached to Internet interaction, such as through Safari is still a risk.
I downloaded ClamXav to protect against this which is freeware and available on the Mac Store. Here is the link . . .