Differences Between Android and Apple Application Development

 

From Gerard Veldman Software engineer and architect
Eindhoven Area, Netherlands

Gerard Veldman • I have a fair bit of Android experience and less, but growing, iOS experience. Here are what I think are some pros and cons of both platforms:

* Android development is Java based, runs on any platform (Windows, Linux, OS X), with reasonably good tooling (Eclipse, Android SDK) which is free. This makes the barrier to entry close to zero. On iOS there is a yearly fee, and you have to use a Mac.

* iOS development requires you to learn a new language (Objective C) in a development environment that is, in my opinion, a bit less friendly than Eclipse. The language is also a bit more cumbersome to use than Java. Although many people are worried about manual memory management on iOS, this does not actually turn out to be a big hassle due to the memory pool mechanism which has an auto-release feature.

* On iOS, people are pretty much forced to update their phone when a new version comes out. This means that as a developer, you don’t have to worry so much about compatibility with older iOS versions. This makes the world much simpler compared to Android – there are many, many phones around running older versions of Android, and some feature from a new version you may want to use may not be in those older versions. You can work around this, but it does add complexity.

* When creating layouts and graphics, the Android process is much more involved due to the plethora of devices that must be supported. Furthermore, so far the best way of designing layouts is in XML format, whereas on iOS you can design your screens in a graphical editor (which does have bugs, but it is a quicker process in general).

* The Android operating system is much more aggressive in harvesting unused resources than iOS is, taking back resources from applications if required. This means that, as an Android developer, you will routinely find parts of your application being killed and have to deal with this accordingly. This means taking care to always save state, and forgetting this (easily done when adding more state) leads to bugs. I think it is a valid and understandable design choice by the Android team to design the system this way, but it does require more effort from developers.

* Documentation for both platforms is very good, among the best SDK documentation I’ve seen. No big difference there.

* The Android Market is more open than the iOS App Store, and the process you have to go through to release on Android is much simpler. There is no review process on Android, whereas on iOS there is, and if Apple says “jump”, your only option is to say “How high?”. This does cause the average app quality in the App Store to be higher.

There are probably aspects I forgot to mention, but these came to mind straight away.

In conclusion, I think development on Android is in many aspects more complex than development for iOS, with the exception that Java is a more powerful language than Objective C, and the Android tools are free.

I am interested to see the opinion of others who have experience on both platforms!

Submitted by Frank Cauley -
Visit FJC Website

 Posted by at 8:24 pm

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>