Friday 18 December 2015

Android or iOS : Developer’s Perspective

Image Source: www.technobuffalo.com
    One cannot deny to the fact that past two decades witnessed a rapid change in the technology. Our generation saw a long leap over letters, telegrams, landline and cordless phones which finally landed up at mobile phones. Or should I say, mobile world. While the thirst is still alive, research says that in couple of years, 3 out of 5 people will be carrying a mobile phone and 86.7% of these devices would be smart phones. Thus, people would be putting minimum efforts in ordering a pizza, booking a flight ticket or reserving seat for a movie. Keeping the same in mind, companies are focused on targeting their customers in the best possible way i.e. through responsive websites and native mobile applications. This eventually opens up the market for app developers. In this article, I would keep the responsive websites or hybrid apps aside (considering it a different lateral) and would focus on development of native apps. 
    Now comes the million dollar question, which platform should I develop for, Android or iOS ? While both have their own pros and cons, let us have a look at some of the points from developer’s perspective.

Programming Language

Considering programming language, there can be no doubt that Android seems better. As Android applications are written in Java, which appears easy to most of the developers as compared to Objective C for iOS, which is not a familiar one. You need to write more complex lines in Objective C for doing the same job than in Java.

String updatedString = originalString.replace(“Android”, “iOS”);

While in Objective C, this would be
NSString *updatedString=[originalString stringByReplacingOccurencesOfString:@“Android” withString:@“iOS”];

    This might appear more complex and lengthy, but at the same time, it gives more clarity. Not only clarity, but Java lacks with the features like Categories and Blocks. Modifying existing classes (even predefined ones) by introducing your own methods using categories is something which makes developers fond of Objective C.
    Above all, ARC (Automatic Reference Counting) plays a key role in making the Objective C better. It makes the programmer free from the overhead of memory management. In most of the cases,allocation, deallocation and other memory related issues are taken care by ARC. Thus, iOS lead here.

Development Environment

    Both platforms facilitate their developers with IDEs, but once again, iOS wins the battle. 

Though Android Studio (IDE for Android) is released, most of the developers still make use of Eclipse. However both Android Studio and Eclipse collectively stands far behind than Xcode (IDE for iOS). Some of the reasons behind this lagging are poor debugging and refactoring capabilities of Android IDEs. Programmers still need to search between hundreds of lines of log file to fix the bug, while in Xcode, they are straight ahead taken to the root cause (particularly when it is memory leakage issue). Also, simulators in Xcode are fast and auto configured, while in Eclipse, simulators are slow and programmer need to configure them (Android being used as OS by a variety of devices). 

UX

    With the introduction of Storyboard in Xcode, developers efforts in designing the UI of application have reduced to a great extent (linking views using segues can be considered as an example). Now there is no need to toggle between XML nibs which in turn, makes the code less error prone. 
While in Android, you still need to keep a track of XML files for all the activities. Moreover there exist no provision of linking the UI elements directly to the code using any drag drop feature. In contrast to this, Xcode allow you to link UI elements with the controllers and code in a very easy manner.   

Easy UI design using Storyboard

Moving the App from IDE to Store

    One must agree that publishing of application to the store is far easier in Android, as compared to iOS. Moving the app to Apple Store takes much efforts than to move it at Google Play Stores. This is because of complex and tedious testing process of app by Apple. Prior to this, getting the application signed, getting certificates and distribution profile is also a breath taking job. Moreover, iOS apps can only be published at Apple Stores, while there are n number of options for Android apps including Google Play Store, Amazon Store, various websites etc. Thus, Android leads iOS here.

Money Matters

    At the end of the day, it is revenue which is taken into the consideration. Though number of downloads in Android are 60% higher then iOS, but according the report of App Annie, revenue generated by iOS is 60% higher than Android. One of the reasons behind this is, iOS being a closed system. This mean that pirating an iOS app is much harder than Android app, and hence stealing of applications do not cause much effect on revenue. Moreover, a higher percentage of Apple users make in-app purchase. This percentage is much lower in case of Android, effecting revenue. And at last, fragmentation. Android apps are fragmented and available to users through different channels, causing a fake rating and decrease in revenue. 

    Thus, both the platforms have their own pros and cons. Geeks who are about to start the app development might see this as a dilemma, but in my view, I find iOS slightly better over Android.  


2 comments: