Tuesday, 19 May 2015

iOS development vs Android Development

iOS development vs Android Development


Hi there!!!...
I'm Aamir Ahmed, a full time Software Developer at a mobile game development firm called Meteora Gaming. As you guys are aware that mobile technologies are at their peak now like never before, this would be the most perfect time to start your career in the field of mobile software / app development. The field of mobile app development is one most interesting career paths one could choose in the entire IT industry.


Image source: http://boostonemobile.com/wp-content/uploads/2014/08/mobile-technology.jpg

Fine!!!..now coming to the point..
Once you decide you want to be a App Development professional, it might be a daunting task to choose which platform you want to develop your apps for. Of course the two giants ruling the platform market as of now(April 2015) are Apple with their classic iOS platform and Google with their flagship Android. 
Well, these are my views on which route you might want to take(either iOS or Android) while opting for software development on the mobile platform.

1. Programming Language

Alright, we all know that for us to code we must know a programming language. It is always better to have a prior knowledge on objective oriented concepts while programming on either platforms.

Now in order for us to develop apps on the iOS platform we must know to write code in Swift, a new programming language introduced by Apple in the Worldwide Developers Conference 2014.
Earlier the language used to code on the iOS platform was the Objective C language (that was kinda outdated..to be frank), which had certain Objective Oriented Programming concept based frameworks mounted onto C language.
Swift brings a breath of fresh air to programming on the iOS platform. This new language is very different when compared to objective C but has certain similarities to the latter. 

For us to program on the Android platform, it is essential to have a clear knowledge of Java. Java being one of the most popular and the most widely used language, it is much simpler to learn and understand the concepts and syntax when compared to Swift. However it is essential for us to keep in mind that just having the knowledge of Java is not sufficient for programming on Android, it is also important to know the Extended Markup Language (XML) and certain frameworks associated with the Android SDK.

2. Virtual machine / Software Development kit and Devices

While coding for the iOS platform we just have to download an Application called Xcode from the App store on your mac. The iOS SDK comes along with it and hence there is no need to download a separate SDK. 
iOS development has one very major advantage that we specifically know for which device (iPhone/iPad) we are developing for .

While coding on the Android platform we must first download the latest Java Development Kit(JDK) which has the JVM and JRE from Oracle. Furthermore we must download the Android SDK and Android studio from Google's Android developer forums.
One of the biggest disadvantage of Android app development is that we would not know specifically for which device we are developing for.

3. Devices based on Geographies

It is very essential to know for which specific regions you are targeting so as to market your app.
For instance if we wanted to market our app int the U.S.A., Canada, Australia etc. then we have to target development on the iOS platform while if we want to target the users in countries in Europe, South East Asia etc. then we have to go for development of more apps on the Android platform.
A brief overview of usage of platforms is given below :


4. Salaries and Growth

Of course salary will also be one of the constraints for many developers!!! 
The salary for both Android and iOS developers will be almost in the same range and is most likely to increase after a few years of experience.
Another important and and the most compelling factor is the growth in the professional domain in the industry. Having an experience in Android development might fetch you a very good job in the same or other domains (like J2EE) on the contrary having an experience in iOS development would fetch you a high paying job in either iOS or OS X development since there is a high demand and less resources for iOS/OS X developers in countries like India.