A couple of weeks ago I switched from a Blackberry to an Android phone. I was a little anxious about venturing into the unknown of Android development, but I couldn’t fight the temptation of downloading the Android SDK and hacking more than a few days. To my surprise it only took about an hour to get everything installed and setup and then it was on.
Okay, maybe it wasn’t really “on”. I definitely found myself in a foreign world where I have to fire up a search engine to figure out how to do even the simplest things. The first thing I did after getting Eclipse and the Android SDK setup was walk through the Hello World tutorial and then the Notepad tutorial. Those provide enough of the basics to get started.
It’s been probably 10 years since I’ve even taken a peek at Java so I feared I would be lost. On the other hand I’ve heard many times that Java is so much like C# that it will seem familiar. It turns out that both are true. It definitely looks like C# and a lot of the syntax is the same (or nearly the same) but learning a different framework has me in a spot where I haven’t been for years: feeling like a newbie.
However, the Java part of Android development really hasn’t been all that troublesome for me. Neither has Eclipse, it is close enough Visual Studio to seem familiar. The biggest challenges have been working with the Android Framework itself and doing things the Android way. In case you were wondering I have never done any Windows Mobile development so I cannot compare/contrast the two. I’m primarily a web developer and have done little Windows desktop work in the past and even less work with WPF other than the occasional dabbling to see what it can do. Android uses XML markup for layouts so I think those familiar with WPF will find Android development rather similar. Same goes if you’ve done any type of MVC or MVP style development previously (including ASP.NET MVC), you’ll recognize that the Android model uses that style. The differences that I have noticed between Android and something like ASP.NET MVC is that there is no work at all done in the views themselves (no helpers, etc) as they are purely markup, more similar to XAML files than ASP.NET MVC views (at least as far as I have experienced). Instead all the work to map your model to the view is done with various built-in and custom adapters. I’ve spent most of my time figuring out how, where, when, and which adapter to use in different situations.
I’m just starting to dig in, but it is a lot of fun. If you’re a .NET developer and have been reluctant to start hacking apps for your Android you should just go ahead and jump in. You’ll find it familiar yet strange: familiar enough to be able to get around but strange enough that you’ll have to do some research and trial/error to do anything significant. It’s fun, give it a try!
I’ve got a few bookmarks saved on Delicious for documentation or articles that I’ve found useful: http://delicious.com/diggerdanh/android