El problema de la fragmentación en Android desde otra óptica

Hoy quería echar un capote en favor a Android, ese sistema operativo que en apenas seis años ha sabido mover sus fichas y comerse el mercado de la nueva era Post PC.

Fragmentacion-Android

Y es que en su momento ya hablamos sobre el gran talón de Aquiles del android, la fragmentación presente en versiones operativas en circulación.

Para colmo, su competidor directo, iOS, y debido a la centralización propia del sistema operativo, puede estar orgulloso de no tener apenas fragmentación en sus dispositivos. De hecho ha sido uno de los eslóganes usados por Apple en la última WWDC para demostrar que iOS es superior.

Que haya fragmentación no es bueno, y en eso tienen razón. Lo perfecto sería que tan pronto una nueva versión saliese al mercado, todos los dispositivos con versiones antiguas pudieran actualizar. Pero para ello, primero deben de cumplirse algunos requisitos que quizás el dispositivo ya no cumpla, y que la empresa del producto anteponga la lucha contra la fragmentación frente a los propios intereses económicos (obsolescencia programada), descontando el hecho de que debería ser gratuita (en sistemas operativos móviles estamos acostumbrados a que sea, pero no pasa lo mismo con los tradicionales) y permitir un canal de actualización que contemple el 100% de casos de uso (mismamente internet no lo tiene todo el mundo que tiene un dispositivo).

En Android esta situación se agrava precisamente por la filosofía abierta del proyecto, ya que son las operadoras quien permiten actualizar el sistema, y antes de ellas, son los fabricantes. Por todo ello, una versión nueva de Android tiene que pasar por manos de cada fabricante, que querrá personalizar sus dispositivos mediante software específico para ellos, y cuando éstos lo liberan, toca el turno de las teleco, que hacen lo propio (y para colmo lo hacen mal).

Entre tanto cruce de desarrollos, acaban pasando meses y meses, que a la larga termina por crear paradojas tan subrealistas como que un terminal de gama alta no tenga aún ya no solo la última versión, sino la anterior (los tiempos de desarrollo de nuevas versiones adelantan a los tiempos de desarrollo de aclimatación en dispositivos).

En iOS, es Apple quien desarrolla tanto software como hardware, y es por ello que tan pronto sale una nueva versión, está disponible para todos los dispositivos “compatibles” (nótese la ironía).

Afortunadamente, Google está luchando contra la fragmetnación, no en el campo más directo (que por otro lado es el que conoce la sociedad, y que resulta complejo de cambiar), sino de cara a desarrolladores.

Por eso me gustaría dejaros dos gráficas de un estudio del mes pasado, analizándolas justo debajo.

fragmentacion

¿Qué podemos ver? Pues sin pararnos mucho, que parece que Android tiene un 99% de eficacia, e iOS 93%. Ahora bien, como suele ocurrir en estos estudios, hay truco (que no quita que digan la verdad, aunque sea a medias).

Suponiendo que los datos sean totalmente ciertos, la gráfica azul muestra la fragmentación actual de dispositivos iOS, donde vemos que iOS6 está presente en el 93% de dispositivos de la compañía.

En la gráfica verde, lo que tenemos es el porcentaje de dispositivos que usan los mismos Google Play Services, el conjunto de APIs que los desarrolladores de aplicaciones usan para crearlas, con un masivo 99% de mercado.

En este 99% de mercado, habrá varias versiones diferentes de Android (superiores en todo caso a la 2.1), por lo que la fragmentación sigue estando presente, pero a la hora de la verdad, hay más porcentaje de aplicaciones compatibles en Android que en iOS atendiendo exclusivamente al mercado de dispositivos que están a día de hoy en circulación.

Dos puntos a considerar, y con ello termino:

  • Que Google lo está haciendo bien: Mantiene la estrategia de afrontar problemas buscando soluciones y no medidas que solucionen los problemas, como también hemos visto en la filosofía de parchear exploits en Chrome, y no arreglar vulnerabilidades, lo que lo convierte en un navegador con muchas vulnerabilidades pero paradójicamente de los más seguros del mercado.
  • Que la versión de un sistema operativo es indiferente a los problemas adyacentes a la fragmentación: Luchar contra la fragmentación es casi imposible (habría medidas para paliarlo como firmar un compromiso de todos los fabricantes y todas las operadores a fijar un calendario de actualizaciones, algo que dudo mucho que llegue a materializarse), por lo que Google ha decidido afrontarlo de la mejor manera posible. Si toda la cartera de APIs que el desarrollador tiene a su disposición para desarrollar aplicaciones la hacemos compatible de forma retroactiva, aunque haya fragmentación, no habrá fragmentación de servicios, que a a la hora de rendir cuentas, es el verdadero problema.

Y para hacer una foto final, que quede presente que aunque un problema, la fragmentación no debería ser considerada un punto vital de cara a elegir entre Android o iOS como sistema operativo de nuestros dispositivos.