Sunday, September 7, 2014

iOS or Android, Confused what to start with?

[Source :  http://blog.bazingalabs.in]

Being a developer and also handling most of the Management, I realised there is lots that go into deciding what to start with: iOS or Android

There are a huge lots of posts on this topic, and many people fight and claim one of the two, I am just here to explain you various Factors that matters into the decision. Then its all upto you.

So let the battle Begin -

1.Market Share - 
Android Dominates the Market Share by having about 80% of the market share world Wide.
Thats a huge Leap over iOS and is a big number to consider! But does it really Matter, We will see as we read though.


2.Target Audience - 
What is your target Audience? 
There is much higher user Engagement on iOS as compared to Android.
Apple users are much more towards using new apps more, and new technologies.
Above 62% of Mobile Web traffic comes from iOS Platform.

3.Money - SHOW ME THE MONEY!!
Money is all iOS!
Above 70% of Mobile E Commerce traffic comes from iOS Platform.
Facebook Ads were 1790% times more profitable on iOS, As compared to Android.
I don't think I need to say any more.


4.Environment & Language

You can still write code with text files and command lines, and many do, but it’s so much more productive to use an integrated development environment, or IDE.

Apple’s Xcode, which is, by and large, a joy to work with. It’s slick, fast, powerful, helpful without being intrusive, and it keeps getting better at papering over both the unheimlich compilation machinery beneath its glossy exterior, and the complex and paranoid certificate/profile machinery which Apple imposes on developers to retain its titanium-fisted control over iOS apps and devices. The debugger works seamlessly, and the simulator is fast and responsive.

But Android? Oh, Android. The current state-of-the-art IDE is Eclipse with Android Plugins, and it is embarrassingly bad. Slow, clunky, counterintuitive when not outright baffling, poorly laid out, needlessly complex, it’s just a mess. Its debugger is so clumsy that I find myself doing log-file debugging most of the time, whereas the XCode debugger is my iOS go-to bug-hunt tool. And the less said about the Android emulator, which takes minutes to launch and then half the time fails to connect to the Android Debug Bridge, the better.

Now, to be fair, Google knows this is a problem, and they are working on a new Android Studio IDE. Alas:
Android Studio is currently available as an early access preview. Several features are either incomplete or not yet implemented and you may encounter bugs. If you are not comfortable using an unfinished product, you may want to instead download (or continue to use) the ADT Bundle (Eclipse with the ADT Plugin).
It’s nice to see they’re working on it.

Regarding the Language,

I cut my programming teeth on Java, and didn’t think much of Objective-C at first, in large part because of its excessive verbosity: a line like

String s2 = s1.replace(“abc”,”xyz”);

becomes

NSString *s2 = [s1 stringByReplacingOccurrencesOfString:@"abc" withString:@"xyz"];

but I’ve grown very fond of Objective-C. It’s just better and cleaner than Java. It has blocks: Java does not. It has categories; Java does not. It does not require you to wrap much of your code with vast swathes of boilerplate try/catch exception-handling whitespace: Java does.

Java has its advantages. Better stack traces, for one thing, which means tracking down sporadic bugs tends to be a lot easier. And until a couple of years ago Android had the huge advantage of garbage collection. But now that iOS hasautomatic reference counting, that advantage has mostly vanished (although old third-party tools often don’t work with ARC, which means you have to do some XCode configuration voodoo to switch it off on a file-by-file basis.), And with SWIFT coming in lately, There is no comparison now!

5.UI UX Designs

You would expect Apple to walk off with this trophy. Its Interface Builder is a very sleek way to put simple good-looking user interfaces together quickly. The trouble is, the more I’ve actually used Interface Builder, the less I’ve liked it. It’s another layer of configuration complexity; it’s excellent for simple things, but as time goes by and apps evolve, those simple things tend to get complex and messy; and I really don’t like the multi-screen Storyboards Apple added about a year ago.

While Android theoretically has a comparable visual tool, the less said about it the better. In practice you wind up writing XML files which provide layout guidelines, as opposed to rules, so that apps are rendered (hopefully) well on the entire vast panoply of devices and screen sizes out there. (Apple’s Auto Layout moves in the same direction, with an eye towards a larger variety of iOS screens in the future, no doubt.) Meanwhile, Android provides an icon pack for developers to use, whereas iOS developers have to go with third parties like Icons8, or roll their own.

Overall it’s a closer contest than you’d think, although I concede that this is pretty idiosyncratic. In the end two things give iOS the edge. First, it’s still much simpler: three screen sizes (including iPad) and two screen densities, as opposed to the mass of complexity which is Android. Second, the default iOS visual elements — eg popup menus and messages – are so much more visually attractive than Android’s.
6.Cost, Effort and Developers
There is this general misconception that iOS will cost more then Android.
iOS might be more complex to code, but the tools and technologies like Xcode are so powerful that iOS is coded hell lot faster then Android
Plus iOS does not have to support huge variety of devices.
About developers, Data speaks for itself!



7.Publishing
Publishing an Android app is easy as a dream. Just sign your app via a handy Eclipse wizard, and poof, you have an APK file that can run on any device. Email it, put it up on a web site, or upload it to Google Play and make it available worldwide (probably) within the hour. Could hardly be simpler. Check install statistics and crash reports, including stack traces which (usually) identify the individual line of code that went wrong, at your leisure, and you can upload a bug-fix version immediately.

Publishing an Apple app is a nightmare. A brilliant friend of mine always advises people to add at least a day to their iOS development schedule just to wrestle with certificates and distribution profiles. No matter how many times I do it, or how easy the latest version of XCode tries to make it, it’s always a giant hassle. And testing would be even worse if not for TestFlight. And Apple’s “iTunes Connect” web site is to Google Play Developer Console as a Ford Pinto is to a Tesla. Good luck getting any crash reports at all, much less useful information from them; have fun jumping through their arbitrary hoops; and marvel at just how bad mighty Apple’s UX can be.


8.Funding for Startup's, Community
It has been a trend that VC's don't fund Android Apps! Why? No idea. But if you are a startup, Dont even think about Android!

9.Security and Enterprise usage
I dont have to speak anything about Android's security and uses in the enterprises. It cannot be used. Simple. Android being open source does not have any high level security.
Apple levies strict guidelines for development, and if violated, your app does not get uploaded on the app store.
The same is not true for Android.
Plus Android is not at all secure.



And the Winner is - 
iOS, and by some distance. Android has its advantages, but overall, it remains significantly easier to write good iOS apps than good Android apps. Combine that with the fact that iOS users tend to be wealthier–and arguably more influential–and it still makes sense for most startups who want to make a splash to go iOS-first, Android-later. The new Android Studio IDE could conceivably close some of that gap…but not all of it.


4 comments: