The question of where to start first, Android or iOS is getting difficult with the news that Android has market share of more than 80%. Let’s check developers’ view on this question. It is obvious that the one who makes their life easy can gain better advantage.
Background
Although one can write code with text files and command lines, it is better and productive to use an integrated development environment (IDE).
Apple’s Xcode is smooth, quick and supportive without being interfering. It is getting better at spoiling over both the uncanny collection mechanism technology under its sleek outer surface, and the difficult and obsessed certificate mechanism that Apple asks from developers to maintain its strong hold over iOS applications and devices. The debugger functions smoothly and the simulator is very fast and responsive.
The current IDE (Integrated Development Environment) is vague for Android. It is slow, clumsy, counter intuitive, inadequately laid out and unnecessarily complex. Its debugger is awkward compared to Xcode debugger. Android’s emulator takes long time to launch and 50% of the times fail to connect to Android Debug Bridge.
Google is working on to resolve these issues with the Android Studio IDE. It is available currently as early access preview. But many features are either not complete or not yet implemented. It is advisable to use ADT Bundle (Eclipse with the ADT Plug-in) for those who are not comfortable using unfinished product. It is really good to hear that Google is working on it. But it is also sad to understand that even 4 and half years after the launch of first Android phone, the bug still exists. Therefore iOS is better compared to Android.
Comparing Configuration
Regarding configuration, for iOS, under the shiny, flawless exterior of Xcode and Objective-C, there is still error of old programming. Whereas Android has a single manifest file and Eclipse builds the app in its totality when one saves a file. It is preferable to have more clarity in the error messages when application is not working because of one has not configured the permissions correctly, but still it is a small issue. Largely Android application configuration is simple as well as neat. Therefore, Android is better in this regard compared to iOS.
User Experience Design
One would expect Apple to have at better advantage. Its Interface Builder is very smooth for putting simple and good looking user interfaces in order very fast. It is excellent for simple things, but the real issue is when the app evolves.
Theoretically Android has a comparable visual tool, in practice; one would wind up writing XML files which provide layout guidelines, opposite to rules, so that apps are turn out to be good for more number of devices and screen sizes available in the market. Android gives an icon pack for its developers to use, iOS developers have to go with 3rd parties like Icons8, or they have to roll their own icons.
Overall it is a closer contest than one think, but in the end there are two things that give iOS the edge above Android.
- It is very simple (3 screen sizes along with iPad and 2 screen densities)
- The default iOS visual elements are more attractive visually compared to Android
Therefore iOS has better advantage here.
Programming Language
iOS applications are written in Objective-C where as Android applications are written in Java. Objective-C is better as well as cleaner than Java. Following are the reasons:
Objective-C | Java | |
Blocks | Yes | No |
Categories | Yes | No |
Code Wrapping | No | Yes |
Therefore, iOS gets the advantage here.
Application Programming Interface
iOS and Android make huge library of software available for the use of their developers. Generally these libraries are by and large similar. The advantage iOS has is the extra set of features and frameworks along with the clean and better design system. Therefore iOS has better advantage.
Internet
Now-a-days almost all apps are secretive to Internet APIs compared to isolated programs. Therefore it is important to look at it independently. Both the platforms give complete range of APIs and tools for this. Further, they also provide parallel ‘web-views’ which are actually browser that anyone can plug into their application anywhere.
Actually network connections have to function in the background, in the manner that it does not disturb the main thread of the application. Thus, multi threading is hard. To deal with this Android has provided a sync task class. Although it is dull but it works well. It is very easy way to decide if you are online or not. Although, iOS provides similar function but is not satisfactory.
Still there are a host of open-source libraries that make life very easy.
Thus natively Android has better advantage but when we use third-party libraries, iOS has an edge.
Sharing
In case of sharing data between apps, both the platforms are equal.
Fragmentation
In this are iOS has the edge.
Publication
It is a nightmare to publish an Apple app. One of my brilliant friends always advises everybody to add one day to the schedule of iOS development, for only to fight with the certificates and distribution profiles. It does not matter how many times one does that, or how easily latest version of Xcode tries, it is always a big trouble. Further, testing would be worse if it is not for TestFlight.
Therefore Android has the advantage here.
So who is the winner?
After going through this detail analysis, iOS looks the winner. Although, Android has its own advantages, it is easy to write good application for iOS. Along with the fact, that the people who use iOS are usually wealthier. So it makes lot of sense for mostly all start-ups to go first for iOS and after that for Android. Although, new ‘Android Studio IDE’ has some improvements, but still it is not the complete alternative.