8

I'm a Java developer and I'm going to start working with Android to get familiar with mobile apps. I've worked with Ajax toolkits, but haven't done any mobile development.

I've seen a huge change in development on certain toolkits where the learning curve really jumps up, as in GWT 1.5 versus 2.4. I'm just wanting to jump in and get the basics (along with best practices) down for now. I don't know if Android 2 versus version 4 would do that, but version 4 might just throw in extra features that I might not need to know about for now and take away from my main focus.

Is it better to go with the latest version of Android or, to make sure the fundamentals are covered, take an older version that would be easier to get in and start developing with?

3 Answers 3

6

During your learning you should skip anything Android < 2.1 specific. There aren't too many devices on the market running those old versions, you can skip even 2.1.

First of all I would suggest to learn the developer guide: http://developer.android.com/guide/index.html After you read those docs you should start the training section: http://developer.android.com/training/index.html

4
  • 1
    So you are recommending just starting with the latest version then?
    – user39741
    Commented Jan 27, 2012 at 18:20
  • 1
    I wouldn't skip 2.2; the latest stats (see Mahmoud's post) indicate 30% of devices still use Froyo, and unless you have a really good reason, that's a fair number of users to exclude. This is partially because a fair number of phones didn't have an official upgrade path to Gingerbread - for example, the HTC Desire, which was a pretty popular model, can only be upgraded using an RUU image, meaning a wipe is required. (Granted, I'm slightly biased since I'm one of those people.) Commented Jan 27, 2012 at 23:08
  • Sorry, I mean I would skip 2.1 and start with 2.2 :-)
    – dmaxi
    Commented Jan 28, 2012 at 20:06
  • There are still some Froyo devices sold, so you shouldn't skip it unless you have very good reasons. BTW, I'm also biased because of my Galaxy Tab which has yet to get an official update...
    – user281377
    Commented Jan 28, 2012 at 22:55
14

There's a chart that shows the share of every Android version, use this to identify which versions have a significant share, and which don't.

Going with just the latest version isn't a good idea most of the time.

2
  • 1
    Good point! You have access to the latest resources with the latest version, but I wasn't aware of the chart.
    – user39741
    Commented Jan 27, 2012 at 18:24
  • Ooh, +1, I'd not known about that chart either. I was worried about excluding <2.1 with my most recent project, but I guess it's nowhere near as big a deal as I thought it was. (I'm on 2.1, so I thought there were more older ones still around)
    – Izkata
    Commented Jan 27, 2012 at 22:29
5

Anything which is related to Android 1.6 and earlier can be skipped, they consitute a very small range of devices. After Android 1.6 there weren't many great changes to APIs, so I can talk about the particular changes.

  • Fragments. Absoultely worth learning. They were introduced in Android 3.0, but they are available via a compatibility package on Android 1.6+, and using them is a good thing because they make it easy to break UI into self-contained parts. Activities also do that, but to a lesser extent.
  • Loaders. They were introduced at the same time as fragmetns, and their purpose is asynchronous data retrieveing and updating. Everything I said about fragments applies to them: you can use them via compatibility package, and they are very useful.
  • Action bar. Also introduced in Android 3.0, but it is unavailable on devices prior to it. You can make it show in your application if it is run on the Android 3.0+ devices, but right now they are in minority. Their share will increase, of course, but this will not happen all of a sudden.
  • Drag and drop. Yet another feature from Android 3.0 (yes, most changes happened there since it's the first release to support tablets), but it's not available on devices prior to Android 3.0, so it's not very important at this time.
  • Supporting both tablets and handsets. This is not a feature, of course, it is something you will have to keep in mind if you intend your application to run correctly both on the devices with Android 2.x and 3.0+. Before the tablet support in Android 3.0 you didn't have to think about the large screens. Android 3.x releases, however, are aimed at the tablets, and Android 4.0+ runs on both tablets and handsets. Tablets with Android 3.0+ are not so numerous nowadays, but it wouldn't hurt to design your application in a way that makes it easy to use it on either device type.

Besides that, there are really no major changes in the development since 1.6. Of course new APIs got added, but nothing that would call for relearning the platform. The fundamentals are all the same.