Taking a spin of iPhone SDK & Android SDK

Holiday is upon us and this post is triggered from some free time off from work. This blog post is about my first experience on taking a spin on iPhone SDK as well as Android SDK. When I write this post, I have not dived deep into both SDK yet. But I wanted to share my first hand experience while it is warm.

Downloading & Installing: Both SDK provide an easy way to download. For iPhone you just need to download one giant installer (XCode & iPhone SDK), do the install and you are done. Even though it is over 2GB, it gives a newbies a quick jump start. One downside from iPhone, you need to register (for free) as iPhone Developer for download and additional technical resources. On the other hand for Android, you need to download Eclipse then install Android Development Tool (ADT) Plugin, and download Android SDK. Wait, it is not over yet! You need to open up SDK and download the platform (which version of Android) and link SDK (and platform) from Eclipse. I am not saying it is a complicated process. But if you are not familiar with Eclipse and its plug-in system, it is not very friendly process to get you started. Maybe Android team should consider one bundle download that includes all of those things.

Using Tutorials: Both iPhone and Android provides getting started tutorials. Android has a quick first application tutorial, simple and effective. Then it provides you with more sample code that you can download and browse around. For iPhone, it also provides a quick first application tutorial. It is a bit longer than Android’s tutorial but it gives more detail explanation about what is going on and give introduction on implementation patterns. It also has some extra tutorial that will walk you through more complicated example. Along with the sample code you can download and play around, iPhone provided much more organized and detailed technical resources over Android.

Language: It is not news that Android uses Java as its programming language and iPhone uses Objective-C as its language. Both are Object Oriented language. Aside from syntax and terminologies, the major difference is iPhone OS does not support memory management using the garbage collection feature that is in Mac OS X v10.5 and later. This is the disclaimer before I go ahead and say my next few sentences; I am a Java programmer (there are a few languages, such as ActionScript, Ruby, I use day to day) and I have very little experience with languages like C / C++. I found it much harder to read / understand Objective-C. Maybe my brain hasn’t wrapped around the syntax just yet. And what’s up with calling Protocol when you want to say Interface, or declaring as Interface when you want to declare Class. 0xCAFEBABE rule!

First Application: With Android, you can get and running your first application pretty quickly. With iPhone, it is much more complicated. There are quite a few step and things you need to do to actually get your first application. You need to understand how linking from one component to another work to fully understand how the application run. I found Android applications are straightforward and easier to understand.

Using IDE: Though I have not dug deep into XCode yet, it provides sufficient support as I would expect from an IDE. With Android basing on Eclipse JDT environment, there is not much to add. Both IDE come with the emulator for the devices. I love how you can keep on running / debugging in Android, without needing to restart your emulator. For iPhone, I love how you can push your application to the real device directly from IDE (if you have proper signed developer certificate).

Further Thoughts: Both SDK helps developer to get their job done as fast as possible. As you are familiar with language, SDK and IDE more, you should not have problem with working on either SDK. That’s what we, programmer, do. We adapt. Aside from monkeying around, everybody wants to get something in return for their time. Most of the cases, it is money. At this point, iPhone has much better chance to reward for your time. For example, someone will be less hesitate to click and buy $0.99 when they do not need to enter their credit card for the sole purpose of trying your application. Depending on your application, iPod Touch (which is relatively cheap and penetrates different market share) users could be your potential customers too. It might not fair comparison given that iPhone has over a year head start and help from the success of iTunes Music Store; But this is truth as of today.

Comments 1

  1. iphone developer wrote:

    In my opinion the Android SDK is a little easy to understand. But developing for the iPhone is so much more lucrative, its really a no brainer as to where developers should focus their efforts.

    Posted 09 Jan 2010 at 8:24 pm

Post a Comment

Your email is never published nor shared. Required fields are marked *