views:

138

answers:

7

How should I make the choice ? What are the parameters I should take into account ?

+2  A: 

If possible, you should support the oldest Android version still in widespread use. That would be 1.5. If you need features from later versions, you might consider requiring newer versions, but if you can do your work on the oldest version still available, you should to increase the number of people who are able to use your app.

Brian Campbell
+1  A: 

Firs of all you should take into account this

Orsol
+1  A: 

Have a look at Android versions market share. I would develop for 1.6+. If you will realize in the middle of development that you want some API feature from newer version, you will have 3 choices:

  1. Don't use that feature
  2. Detect Android version from the app and then decide what to do
  3. Change required Android version in your manifest file and project settings
fhucho
+1  A: 

I agree with the answers posted above, and I would add that on the android API reference site, most of the time the minimum API level is specified (http://developer.android.com/reference/android/package-summary.html). You can have a look at this page to identify the Android version associated with a given API level: http://developer.android.com/guide/appendix/api-levels.html

GôTô
plunx dun refeer to "the post above", since the order changes when people vote on posts.
sandis
+1  A: 

The Oldest version that supports all the functionality your application requires.

For example: Your app needs multitouch? Target version 2.1

My application doesn't need any functionality introduced in newer versions, so I target 1.5

lheezy
And how good is forward compatibility ?
Robert
+1  A: 

Personally, I develop everything for 2.1. There are only a handful of devices that still run <2.0 and most of those people have already put custom roms on them already. I know it kind of screws people with older phones, but I don't like the idea of crippling my app just to make it backwards compatible.

Also I feel like developing for >2.0 encourages people to upgrade their phones =P

Falmarri
+1  A: 

@Falmarri: I see some flaws in your logic. Usually I'd tend to follow the same path as you if I'd be developing on another Plattform, like Windows. I do my C# applications always against the latest (non-beta) version available, as the .NET Framework is freely available for everyone (take out the new releases not being available for Win2k, which is almost 10 years old now).

With Android this attempt don't work. A majority of the devices which run 1.5 and 1.6 do it because there is no update for this device, as the manufacturer stopped developing new versions for this phone (either to motivate users to get a new upgraded one) or because it's to time intensive to make backports to this "old" devices.

So this uses don't have the "free choice" of upgrading their phones. Technically it's possible of course with rooted/custom ROMs, however most users do not have the technical knowledge to root/flash their devices with custom ROMs or don't want to lose their warranty.

So if you want to offer your App to as much people as possible, you have to develop it in mind with a much older OS version. In Android case, against 1.5.

And this is basically what I do. I've done my Apps with 1.5 in mind.

Tseng