What Android API version would you choose to begin developing a new Java application?
Recently I got a used smartphone running Android 2.2.1. Since I never experimentend with mobile development, I decided to use it as an occasion to try to develop a new app for Android.
I worked in Java from some year, and I feel comfortable with it, so since I already work as an independent software vendor I’ll try to sell the app on the Android market if I will be able to do a good one.
I don’t want to start developing with an outdated version of the API, so a I’m asking if starting my development and learning efforts using level 8 of the Android level API is the better choose to take, or if it would be better to use a newer version of the API.
I read <a href="https://stackoverflow.com/questions/8353503/why-is-android-api-level-9-obsolete">why is Android API level 9 obsolete?</a> and <a href="https://stackoverflow.com/questions/7708847/which-android-api-to-use">Which Android API to use?</a> on S.O. about the same argument, but both the questions are pretty outdated now, and I think they left some question opened.
In particular, Jan Dragsbaek said in his answer:
<blockquote>
You should always go for the lowest possible API to use. Simply
because the lower your API level is, the more users can you reach.
So looking at the <a href="http://developer.android.com/resources/dashboard/platform-versions.html" rel="nofollow noreferrer">current stats</a>, you are able to reach 97.9% if you “dumb” yourself down to API level 7.
But why API level 9 is obsolete? One could not know for sure, but most likely because it had some major flaws.
</blockquote>
Reading <a href="http://developer.android.com/resources/dashboard/platform-versions.html" rel="nofollow noreferrer">actual stats</a>, this is the situation:
Now the question is: What will I lose if I develop with level 8 of API in terms of features? And what do I gain in terms of stability or tool support?
<strong>EDIT:</strong>
I finally choose to use level 7 of the API, which offer me the features I really need to get started to experiment on my new phone. Eventually, when I think that app need some feature not available with the current level, then I will port the app to a next level of the API.
For now, I will try to follow <a href="http://androidresearch.wordpress.com/2012/01/07/building-a-custom-fancy-listview-in-android/" rel="nofollow noreferrer">Building a Custom Fancy ListView in Android</a> and see if I'm missing something really useful from the beginning.
Recently I got a used smartphone running Android 2.2.1. Since I never experimentend with mobile development, I decided to use it as an occasion to try to develop a new app for Android.
I worked in Java from some year, and I feel comfortable with it, so since I already work as an independent software vendor I’ll try to sell the app on the Android market if I will be able to do a good one.
I don’t want to start developing with an outdated version of the API, so a I’m asking if starting my development and learning efforts using level 8 of the Android level API is the better choose to take, or if it would be better to use a newer version of the API.
I read <a href="https://stackoverflow.com/questions/8353503/why-is-android-api-level-9-obsolete">why is Android API level 9 obsolete?</a> and <a href="https://stackoverflow.com/questions/7708847/which-android-api-to-use">Which Android API to use?</a> on S.O. about the same argument, but both the questions are pretty outdated now, and I think they left some question opened.
In particular, Jan Dragsbaek said in his answer:
<blockquote>
You should always go for the lowest possible API to use. Simply
because the lower your API level is, the more users can you reach.
So looking at the <a href="http://developer.android.com/resources/dashboard/platform-versions.html" rel="nofollow noreferrer">current stats</a>, you are able to reach 97.9% if you “dumb” yourself down to API level 7.
But why API level 9 is obsolete? One could not know for sure, but most likely because it had some major flaws.
</blockquote>
Reading <a href="http://developer.android.com/resources/dashboard/platform-versions.html" rel="nofollow noreferrer">actual stats</a>, this is the situation:
Code:
Platform Codename API-Lvl Distribution
Android 1.5 Cupcake 3 30,00%
Android 1.6 Donut 4 70,00%
Android 2.1 Eclair 7 550,00%
Android 2.2 Froyo 8 20,90%
Android 2.3 Gingerbread 9 0,50%
Android 2.3.2 -
Android 2.3.3 - 10 63,90%
Android 2.3.7 -
Android 3.0 Honeycomb 11 0,10%
Android 3.1 - 12 1%
Android 3.2 - 13 2,20%
Android 4.0 - Ice Cream Sandwich 14 0,50%
Android 4.0.2 -
Android 4.0.3 - 15 4,40%
Android 4.0.4
Total for Android 2.2 93,50%
Now the question is: What will I lose if I develop with level 8 of API in terms of features? And what do I gain in terms of stability or tool support?
<strong>EDIT:</strong>
I finally choose to use level 7 of the API, which offer me the features I really need to get started to experiment on my new phone. Eventually, when I think that app need some feature not available with the current level, then I will port the app to a next level of the API.
For now, I will try to follow <a href="http://androidresearch.wordpress.com/2012/01/07/building-a-custom-fancy-listview-in-android/" rel="nofollow noreferrer">Building a Custom Fancy ListView in Android</a> and see if I'm missing something really useful from the beginning.