Experiences coding for Android

Having had a Nexus One for about a month, I've just released my first small application and now I'm reflecting on the experience.

After being a Nokia fan for over 10 years (and employed by them for a few years too), it was a sad day when I retired my E71 to being my new 'backup/roaming phone'.

As I mentioned in a previous post, I was confused about which direction to go, but having played with the Nexus One my girlfriend got free as an attendee of Linux Collaboration Summit 2010, I couldn't resist... the draw of the applications was too great.

Having battled with the Maemo and S60 development kits before to no avail apart from a couple of days of headaches while attempting to follow the tutorials step-by-step, I thought I'd never get to grips with mobile coding, especially as I hate Java too.

Enter Android, a Java-only development environment that I've actually been able to get stuck into. Ok, I may have been eased into it slightly by having 2 months in the San Francisco Bay Area on a work project, spending 2 months picking up Java and OSGi architecture, but I'm still surprised I've managed to be so productive with Android's development kit.

I hope I'm not misunderstanding too much when I say this, but the concepts of OSGi that I picked up while in America have helped me appreciate the modular approach of Android development, and looking at many of the applications I've installed, it seems strange to me that so many applications have implemented the same core tools (eg. Barcode scanning), even if they're using the same library (eg. ZXing), rather than just calling for the central application to do it's job and pass back the information it gathers.

Now, as far as the documentation goes, it's a little step up from the standard Javadocs I used to see, but it's still not amazing. For a relative Java newbie it's sometimes hard to tell how exactly I have to use a particular piece of code, of how to get hold of the data I need to pass in as parameters (eg. contexts), and occasionally not realising that I need to implement an 'on...' method within a particular class. Once you've worked your way through those hurdles though, it's pretty surprising how productive you can be.

I first started with a couple of harder pet projects (having decided to skip the tutorials all together), got stuck pretty quickly in web-services stuff, and finally decided to do a more simple application to ease myself in slowly. In around 3 evenings, using the Notepad tutorial as a quick-reference now and again for the basics of SQLite usage, I've managed to build and publish my first Android application, but that'll be mentioned in full in my next post.

After my limited experience of attempting to begin developing for S60 (Java and C++), Maemo, iPhone and Android, I would say that Android is one of the quickest things to get up and running with. Couple that with the cheap $25 one-off fee to enter the market, and you've got a winner. Maemo (now MeeGo) would come a close second, but the limited amount of non-Linux development tools kind of lets it down... not that I'm advocating Windows for development, It would just be nice to be able to develop on my Macs rather than having to boot into Ubuntu.

I've created a new section of my site, dedicated to being my little slice of the Android Market, where I can place more details, more screenshots/screencasts and details about the open source applications I develop, so I welcome any critiques, reviews, comments and suggestions for things I should build next.

Comments

Hey dude,

Interesting article. I have been thinking about starting to look into Android development but just haven't had the time to go near it yet. This write up makes me think that maybe at some point I'll be able to get stuck into it (once the current work overload dies down).

One teeny sub-note. Your links to the previous post and new android section are relative (href="/blog/post/the_nokia_fork_in_the_road") which meant that the link was borked when reading it in Buzz.

Cheers,
Alex
Saturday 5 June 2010 07:12 | user icon Alex Leonard

If you don't have a Google+ account you can comment using the normal comment form below







About the author

Portrait of the author

On weekdays I'm a Technical Lead at Comparethemarket.com, having previously been a Solution Architect at Nokia & Nokia Siemens Networks, creating creative software solutions for mobile operators around the world.

In my spare time I'm an avid new technology fan, and constantly strive to find innovative uses for the new gadgets I manage to get my hands on. Most recently I've been investigating Mobile Codes, RFID and Home automation (mainly Z-Wave). With a keen eye for usability I'm attempting to create some cost-effective, DIY technology solutions which would rival even high-end retail products. The software I develop is usually released as Open Source.

I have a Finnish geek partner, so have begun the difficult task of learning Finnish.


Google+
Add me to your circles on Google+

The blog
Calendar
October 2019
MTWTFSS
30010203040506
07080910111213
14151617181920
21222324252627
28293031010203
Mobile

Zap the link below with your qrcode enabled mobile to send this page to it
Mobile Code for this page
What's this?