Tuesday, December 15, 2009

Are Google's Android OS and SDK ready for prime time?

Ever since Google's Android OS was announced, I had mild interest but admittedly jumped on the Apple iPhone bandwagon and never really stopped to take a peek at Google's offering. Well, today was that day. Let's be honest with each other, Apple has dominated the marketplace and its App Store has exploded with popularity (perhaps to over-saturation). Maybe I decided to take a look cause of all the DROID commercials flashed into my brain or maybe I just wanted to rejuvenate my Java skills after taking a lengthy hiatus to focus on .NET. Truth be told, I’m not sure why I went to Android but I’m glad I did.

No hate here for iPhone (or other technologies)

I'm not going to really go into details about the iPhone SDK and comparing each other. I will say that I found Objective-C to be a strange syntax to get used to but the SDK and tools were manageable. Ultimately I'd have to agree with other developers on the point that Apple has created an SDK that is generally clean and promotes ease of development.

Android is impressive

So why develop for Android? I don't own an Android-enabled device at the moment but I fired up the Virtual Device (Android emulator) and just explored the capabilities. I thought it was a very impressive piece of software. I was excited to start cranking out code. The user interface is beautiful and provided a more desktop like environment with a large Google search box shining brightly at the top. There is a main slide-up menu that pretty much provides access to your applications, settings, etc... much like the home screen on iPhone. I did really like the ability to add widgets to the desktop and application shortcuts wherever I wanted.

Robust SDK

Android has called upon the Eclipse IDE to house its development plug-ins. If you aren't familiar with Eclipse, it is a very popular choice among J2EE developers but is essentially an open IDE for other languages and tools to build upon (i.e., Adobe's Flex Builder is built upon Eclipse as well).


Android Eclipse Tools and Virtual Device

The Android development environment allows for debugging capabilities as well as targeting various versions of their APIs from 1.1 to 2.0.1 presently.

All you need to get setup to start development for Android on Windows is:
From there, setting up everything is just as follows:
  1. Simply download and extract the Eclipse software. (Note: There is no installer so make sure you put the extracted files in a place that best suits you.  I usually copy the eclipse folder into C:\Program Files\ and make a shortcut within my Programs list.)

  2. Open Eclipse and choose Help > Install New Software and then paste the following URL into the displayed dialog.  Select the Development Tools and then follow through the steps to install them.

  3. https://dl-ssl.google.com/android/eclipse/

    adt install
  4. Restart Eclipse

  5. Extract the downloaded Android SDK from the link about and then run Setup_SDK.exe.  This will install the SDK.

  6. Go to Eclipse and choose Windows > Preferences.  Locate the Android preferences and specify the path to the SDK if it isn’t listed.  That is it!  You are ready to start developing.

Programming

While I could write some tutorials on how to program Android, I think Google has provided great documentation and some sample applications to help get started.  I would suggest if you haven’t done any Java programming before that you read a primer and do some basic sample applications (non-Android) before jumping into to the SDK.

Check out some of their sample applications and how to get a basic Hello World going here.  This is a “first impressions” post so after I get more experienced with the Android APIs, I’ll begin to post more tutorials on best practices and techniques.

Final thoughts

At a high level, the reasons I would suggest to you to get into Android is…

  • Google isn’t going anywhere in the foreseeable future and is finally releasing their own phone that will be a pure Google vision of the Android OS.  Android is out to compete and it can provide capabilities beyond what the iPhone currently offers.

  • XML based views make programming views very easily (especially if you are a web or Flex developer).  They are backed by an Activity API that reminds me in some ways to an ASP.NET or Flex code-behind file.  Strongly typed resource files make internationalization and externalization easy to work with from the start.

  • Strongly proven programming language and runtime backed by a popular IDE.  Java has been around for quite some time and a great competitor to take on Apple and its Objective-C counterpart.

  • A young marketplace.  If you are looking to get into the mobile application space with the hopes of making a few bucks, this could be the next best opportunity if you have a fantastic idea.  Unfortunately, the time is gone where thinking you can retire from an iPhone venture is possible. 

  • You don't need to rush out and buy a Mac. Multiple platforms are supported
Enjoy!  I look forward to hearing about your experiences with Android!

No comments:

Post a Comment