Android vs iOS development

preface

This post was in my draft for a long time, it is not finished and will be not updated. However it can be useful as it and still reflect what I think today.

Versions were:

  • iOS 6 / XCode 4.3
  • Android 4.2 / Eclipse 4.3

Hi you crazy developer,

I’m going to talk about my personal experience in mobile development. I’m not going to talk extensively about my background, but I must introduce myself; My name is Jerome and I’m a 27 year old developer, I started programming at 12 (as everyone isn’t it?) My predicted language so far, and you can blame me for that, is PHP. I’m a backend developer for websites, but I’m getting on a new track, native mobile apps. That what I’m going to talk about.

As you may now -because you’re on that website- I already did some mobile development. I did Citroon for Android and also made a game called My laboratory on iOS and Android. Theses app come with amazing design and illustration brought to you by Damien Balada and Julie Escurat. I did other, non noticeable, apps to tests things or play with friend.

So let jump in.

I’m making these blog post to compare objectively what it feels to develop on iOS and android, DISCLAMER: I’m not a fan of any of these platforms, I know it’s hard to trust but still.

Languages

As I explain before, I come from the PHP world, so I’m more familiar with language structured as C. I did study C, C++ and Java also. So that was not difficult for me to do some Android. I’m sure you know that Objective-C comes from C too. But let’s be honest it doesn’t look alike. I learn iOS through the Sandford online course and it was really easy. The main difficulty was to recall concept I learn in Java (or whatever) in Objective-C. May be it the other way around for you.

That’s what I get:

ANDROID IOS
function/method message
traits categories
interface protocols
final __block
callbacks blocks
adapters delegates

Of course Objective-C comes with header files, but it doesn’t change things. I’m a tech guy so as you can expect this is some code

Now, let’s talk about a very important point when you start with a language/framework,

Documentation

As you could think, because Android is open source and cheap there is plenty of resources on the Internet. As you could think, because Android is open source and cheap the quality is not very high. You will find a lot of tutorial talking about this or that for Android, giving example with code of a certain quality. It still is helpful in the beginning, but rapidly becomes noise in your search. Of course Stackoverflow is helpful to get the right implementation as the community correct errors. In the other hand, and may be because iOS isn’t open source neither cheap, tutorials for iOS are more rare.

On the official documentation side, I think Google wins. Its documentation looks cleaner (IMHO) and it counts! But it comes with lots of examples and I never need to over search for something. All was easy to find. The Apple documentation is complete as well. But harder to navigate thru.

Both give example application and it’s good to look at.

To conclude, I’ll say that with my background, and I think pretty much objectively the winner is Android on this one. The language is closer than what I know and the documentation is better.

About IDE

In this I’ll talk, about IDEs. I’m not going further than the officials ones, because IMHO a beginner as me won’t check something else until he’s fully fluent with the framework.

I already can tell you that it’s a full win on the Apple side. But let’s see.

Eclipse (OMG) for Android.

Android choose Eclipse, that sounds logical because Eclipse is really well done for Java programming. But the problem I guess, is the 90’s look and feel. The UX is horrible, it’s really slow and -that not the case anymore- but the plugin installation was a pain. Of course Google is aware of this situation and it already propose a replacement in alpha: android studio. Problem is that this is not stable yet and doesn’t allow full stack programing yet. So Eclipse it is.
I just don’t like it.

Xcode for iOS.

Apple ships iOS and Xcode together, the software is pretty well polished, but still has some bug or feature missing.
Whatever, it’s easy to found its marks, way more than on the Android side.

On both side, the build process is hidden and works well, just clic that play button and you’re up and running. Emulator (or simulator, we’re getting there) are integrated, as well as real device through USB. Theses IDE are a must if you’re a beginner, it allows to create a project and work with it very quickly.

When you setup a new project

On xcode it seems a little bit faster to setup a project, not mush option or question regarding device version or stuff like that. I’ll use a single view app to get the basic setup done for me. Because Android is more fragmented, the wizard on project creation ask for 3 versions to chose, blablabla. Not much of a problem, but it accentuate the fact that this issues exist. In the real world, this problem exists in iOS too and is IMHO more vicious due to the fact that developers seems less aware of it.

Emulators

On this on Android is not even playing. You have to know that both platform come with a emulator to test your code on your computer. You’ll use them in a first time but in the end developing on real device is a must.

So maybe you know that Apple is cheating! But it’s a nice cheat. They don’t give you an emulator, but a simulator, and the difference is really signifiant

As I wrote this was a work in progress and it ends abruptly here.
check out my website to get useful snippets for both platform :)