miércoles, 30 de enero de 2013

La Fragmentación en Android.

,
Cada dispositivo con Android en el mercado es diferente si nos fijamos un poco. Si nos gusta mucho tener Android en nuestros aparatos y vamos cambiando a lo largo de los años de marca de fabricante de hardware, o bien tenemos un móvil y una tablet, ambos con Android, nos encontramos con que parece que no estamos ante el mismo sistema operativo.

No solamente hablo de las versiones de Android, que ya de por si hacen cambiar bastante tanto el aspecto visual como la interacción con nuestro móvil. Incluso en una misma versión de Android los "Ajustes", la conexión con wifi o 3G o la forma en que accedemos a nuestros archivos es distinta.

A los usuarios más cómodos esto le puede llegar a extrañar o incluso molestar, pero ... ¿Por qué sucede esto?

Este concepto de que la misma versión de Android sea distinta en un móvil de gama baja de Motorola, en la tablet Nexus 10 o en el último Samsumg Galaxy SIII es lo que se conoce como Fragmentación. Es decir, para un mismo producto de software, existen distintas versiones.

Desde mi punto de vista esto tiene implicaciones desde dos puntos de vista:
- Desde el punto de vista de los usuarios: Si bien es cierto que un usuario informado del tipo de móvil que se compra, no debería sorprenderle si tiene o si le sobran ciertas características, para la mayoría de los usuarios puede ser raro o molesto, que cierta aplicación que funcionaba en su anterior teléfono, no funcione en su nuevo terminal, o bien que quiera usar una aplicación para compartir datos con un amigo con un móvil de gama más baja y no pueda porque en el Google Play del móvil de su amigo no está la app de quiere.
- Desde el punto de vista del desarrollador: A menos que se quiera acotar el numero de teléfonos donde se quiere que una app funcione. Un desarrollador tendrá que utilizar mucho más de su tiempo para hacer testing y que sus apps funcionen en muchos dispositivos según sus características, tamaños de pantalla, etc. Sucede que algunas APIs de las que el programador quiere hacer uso resulta que están en un dispositivo y pueden no estar en otro, el hardware es distinto y por tanto algunos uso de la app o la app entera no podrán usarse, e incluso algunos fallos podrían ser inexplicables para el propio desarrollador.

Aunque he puesto esto esto de la fragmentación como si fuera una desventaja para todo el mundo, no es realmente todo una desventaja o una incomodidad, vamos a analizar el tema un poco más profundamente.

¿Por qué se produce esta fragmentación? ¿Por qué los fabricantes amargan la existencia a desarrolladores y usuarios variando las versiones de Android? La respuesta es tremendamente simple, lo hacen porque PUEDEN.

Android es software libre, licenciado bajo la Apache License, y por lo tanto cumple las reglas de la Open Source Definition, creada en 1998 por Bruce Perens. Si nos fijamos, una de las clausulas, la tercera, es que se permiten Obras Derivadas y la distribución de las mismas. Esto aplicado a Android es que los fabricantes utilizan Android, cogen su código fuente, lo modifican para adaptarlo lo mejor posible ( esto es discutible, no siempre pasa) al dispositivo en cuestión y distribuyen los dispositivos con ese software modificado (no así el código fuente de la modificación, a eso no están obligados), sin preguntar a nadie ni pagar a nadie, por algo es libre.

Esto tiene la obvia ventaja de que los precios de gestión y tramitación y compra de licencias son nulos, eso hace que los fabricantes puedan tener un software que funciona en sus dispositivos de manera rápida y adaptándose a los cambios del mercado, sin que el usuario final tenga que pagar un extra por ello. Por lo que se pueden tener móviles modernos, con el último software y aplicaciones (según tu dispositivo como hemos visto antes), y a un precio competitivo si lo comparamos con móviles que llevan sistemas operativos propietarios.

La creación de un ecosistema donde todos se benefician de las aportaciones de todos y hay una gran diversidad de dispositivos hace a Android un sistema potente, sin embargo hace que o el usuario está informado o bien nunca sabe que versión de Android se lleva al bolsillo.

Es algo difícilmente cambiable y es la naturaleza en sí del software libre, con sus ventajas e inconvenientes. Una vez sabido esto, si al usuario le interesa usar este tipo de software o no, o al desarrollador le interesa esta plataforma o no, esto es lo primero que tiene que mirar en un dispositivo Android, si no quiere llevarse a engaños.

¿Hay alguna forma de solucionar esto? probablemente no, aunque sin mucho éxito, Google ya ha intentado solventar el problema de la fragmentación en Android, aunque sus esfuerzos hasta ahora han sido en vano. Aunque la fuerza que tiene Google para promover estandares no es para subestimarlos, si consigue hacer prevalecer un estándar y hacer que la gente lo siga, puede ser un buen camino para que la convergencia entre los sistemas Android se consiga, manteniendo su naturaleza de Software libre.

Lo mismo le puede suceder al próximo sistema operativo libre que ha hecho la fundación Mozilla para móviles, su sonado Firefox OS, aunque todavía es pronto para saberlo.

Personalmente creo que la fragmentación no debería ser un problema para desarrollar o usar Android, es un sistema muy potente y libre que no tiene nada que envidiar a otros sistemas y que es puntero en otros aspectos. Y su naturaleza de libre hace que muchos podamos aprender y crear cosas que en otros sistemas no sería posible. A nivel usuario, el mayor problema sería el excesivo control de Google sobre nuestra información que maneja con Android, es decir, el tema de la privacidad, que ya hablaré en otro post. A nivel desarrollador, en general cada vez más están saliendo técnicas y frameworks que hacen que estos problemas de fragmentación cada vez sean más llevaderos (otra ventaja de ser software libre) y Google suele cuidar a los desarrolladores dándoles herramientas y documentación.

Pero lo más importante. Android es un mercado MUY GRANDE como para no ser tenido en cuenta. Y cada vez crece a más ritmo, incluso pudiendo llegar a 50.000 millones de dolares en 2017.

martes, 29 de enero de 2013

Hola mundo

,
Hola, inicio este blog con el objetivo de por un breve periodo de tiempo (o no, ya veremos) contar lo que pueda sobre cosillas de Android y lo que vaya descubriendo, ya sea a nivel técnico como a nivel novedades (sobre todo Gadgets), pero sobre todo a nivel desarrollo de software, que como programador es lo que más me llama. No tengo muchas pretensiones que ir iniciándome y contando mis cosillas, y si le es util a alguien, pues mejor. Soy programador Java desde hace un par de años, y ciertamente me siento bastante como con la tecnología de Google, ya sea Google App Engine, GWT o AngularJS. Android era lo que me faltaba por aprender. Ya iremos viendo como avanzamos. El software libre tambien es otra de mis pasiones a nivel técnico, asi que si puedo contar cosillas de juntar otros lenguajes libres con Android, otros sistemas como Arduino o Raspberri Pi, y otras formas de desarrollar y demás, ya iré contando. A ver que sale de todo esto.
 

Iniciándome en Android Copyright © 2013 -- Template created by O Pregador -- Powered by Blogger Templates