¿Para qué versión de Android debo desarrollar?

¿Para qué versión de Android debo desarrollar?
android_logo

Cada vez que debo comenzar el desarrollo de una nueva aplicación Android, me surge esta pregunta ¿cual es el mínimo SDK que debo contemplar?. Si escogemos uno muy bajo pensando en abarcar el mayor pedazo de mercado, perderemos nuevas e importantes funciones, pero claro, por el contrario si apuntamos demasiado alto podemos quedar con un nicho de usuarios muy pequeño.

Primero, y como siempre insistimos, deberemos planificar y pensar muy bien nuestra aplicación mucho antes de picar una línea de código. Puede que necesitemos utilizar por fuerza mayor una funcionalidad que está en una SDK "alto", en esos casos deberemos ver si realmente es vital para el proyecto, y si es así tendremos que escoger el SDK más bajo que contenga esa funcionalidad.

Por poner un ejemplo, en mi ultimo proyecto debía utilizar una tecnología relativamente reciente "Bluetooth Low Energy" o BLE, por lo que el minSdkVersion debía ser 18 (4.3) ya que esta tecnología se implementó en dicha versión del SDK. Debo decir que fue un placer desarrollar la aplicación sin tener de depender de la retrocompatibilidad pero por contra la cuota de mercado era cercana a un triste 23%.

Por otro lado, hace cosa de un año, debía encargarme de una app institucional, por lo que se tenía que diseñar para el mayor número de dispositivos posibles, y ya que no requeríamos ninguna funcionalidad especial usamos como minSdkVersion el 7 (2.1). Vaya "pain in the ass", debíamos dar soporte prácticamente a todas as versiones de Android en ese momento, ello implica, triplicar recursos (ICS, pre-ICS (2.3.3), y algunos detalles para 2.1 y 2.2) pero también a nivel de código tener en cuenta las diferentes configuraciones de terminales en cada una de estas versiones, al igual que pensar que había terminales con unas características de hardware muy reducidas, etc...

Pero entonces ¿qué utilizo?. A día de hoy, para un proyecto que no requiere ninguna funcionalidad de SDKs avanzados, yo utilizaría la minSdkVersion 14 (4.0 ICS) que tendríamos cubierto más de un 85% del mercado y deberíamos generar recursos solo para la interfaz HOLO y la reciente de Android L.

Para aquellos que ya usamos Android Studio, en el mismo IDE cuando creamos un nuevo proyecto, nos muestra una lista con las nuevas funcionalidades que implementa cada una de las nuevas versiones, y es mucho más fácil saber si realmente necesitamos una versión superior o no, además de cuánto mercado estamos cogiendo en ese momento.

Y vosotros, ¿qué minSdkVersion usais?