El desarrollo de aplicaciones es seguramente uno de los puntos clave del éxito de un sistema operativo
. Android y su lucha por convertirse en el ecosistema preferido de todos los usuarios pasa por tener las mejores aplicaciones, y estas solo las tendremos si a los programadores que hay detrás les interesa crearlas.
A raíz de un artículo en TechCrunch vamos a relatar un poco los problemas que pueden tener los desarrolladores para hacer su trabajo y qué aspectos debería mejorar Google de cara a facilitar la tarea de quiénes soportan Android. Y es que si los usuarios son los que mandan, a los desarrolladores les toca hacer el trabajo sucio.
Los argumentos están basados en la experiencia de los creadores de Emu, una aplicación de mensajería que decidió lanzarse primero en Android y que desgraciadamente se ha arrepentido de la decisión. Veamos qué motivó a este equipo y qué es lo que se encontró.
Trabajar sobre una API en constante evolución
Emu, lanzada hace ya unos años a finales de 2012, se basa en los servicios de SMS/MMS para Android. Unos que ya tienen su propia documentación creada y un sistema que les permitía no tener que empezar de cero. Con un conocimiento de Java suficiente como para ponerse manos a la obra, decidieron descifrar los secretos de la mensajería en Android y lanzar su app.
El autor relata todos los problemas de documentación que cambiaba con el tiempo, protocolos antiguos como el MMS y problemas constantes con las personalizaciones de cada operadora. Por si fuera poco, al ser un campo tan ligado a las comunicaciones como son los mensajes, las operadores ejercían una grave influencia (con todos los bugs que ello implica) en su trabajo.
De entre las decenas de problemas, ejemplifica el de los mapas de Google al insertar una vista de desplazamiento, creando una imagen negra como la que vemos.
Entendemos que los desarrolladores pueden verse afectados por esta gran diferencia de uso entre unos y otros, pero el caso concreto de Emu no debería ser generalizado, ya que ellos han vivido desde dentro el cambio de los SMS a Hangouts, uno de los aspectos que más quebraderos de cabeza ha traído a los ingenieros del buscador, y lo que ha provocado estos cambios tan caóticos para los programadores.
La fragmentación sigue provocando tremendos dolores de cabeza
Muchos desarrolladores prefieren cortar por lo sano y obviar el soporte a versiones antiguas. Esto debería ser una solución radical al problema de la fragmentación, pero en la práctica no lo es. Y es que el problema que tenemos no solo es de la cantidad de smartphones desactualizados, sino del inmenso número de variantes que hay.
Se habla por ejemplo del S4 de Samsung, que con su sistema multiventana genera una incompatibilidad con el teclado de Emu, un problema que en la versión Google Edition no pasa. ¿Cuál es la dificultad de corregir este bug? Pues que las modificaciones, al estar ligadas al núcleo creado por Samsung, la solución pasa también por ellos. Y la marca surcoreana no tiene la capacidad ni el interés de intentar arreglar los millones de bugs de todas las apps del mundo Android.
En otros sistemas este problema no existe, pero en Google los desarrolladores deben prepararse para multitud de pantallas y formas. Pero precisamente por ello muchas de las herramientas que se proporcionan son tan responsive. Además Google está empezando a tomar cartas en el asunto, como incitar a los fabricantes a que suban sus apps a Google Play en vez de integrarlas con el sistema.
Para muchos programadores esto seguirá siendo un dolor de cabeza, plagado de bugs y que provoca que en muchos casos el coste de crear una app para Android sea el doble o el triple de costoso que desarrollar para iOS.
La documentación de Android debe mejorar
Todo el mundo odia Eclipse (¿o no?). De ahí salió Android Studio, pero sigue siendo más enrevesado que XCode. Independientemente es bueno tener varios entornos de desarrollo, el problema viene no ya en el programa a utilizar, sino en la propia documentación del código.
La documentación de Google es fácil de encontrar, muy bien detallada y con vídeos y textos por doquier. Pero palidece de una mejor organización. No es difícil encontrarse a veces con información repetida, ejemplos que no compilan o textos repetidos y/o desfasados. Y es que la cantidad de APIs y productos que tiene Google es increíble, por mucho que durante estos últimos años hayan eliminado muchas de ellas.
Si no fuera por Stack Overflow y por los consejos de desarrolladores reconocidos como Roman Nurik, muchos fallos se quedarían sin explicación ni solución.
Otro problema es el simulador incorporado para una prueba rápida. En Android es lento y tarda minutos en arrancar, mientras que el de iOS es bastante inmediato. No pasa así con el sistema de certificado y revisión de las aplicaciones, donde Google es muy efectivo y en Apple tardan semanas en aceptarte una solución menor. Gracias a las comunidades de G+ puedes liberar alphas, betas en tiempo record y recibiendo un gran feedback. Distintas formas de trabajar y entender la programación.
Por último está el propio lenguaje de programación utilizado; Java. Un idioma potente y general pero que palidece con HTML5 en cuanto a compatibilidad, precisamente este último es uno de los que más apoyo por parte de Google debería recibir en los próximos años.
El eterno problema de la monetización proporcional a la base de usuarios
, muy grande, gargantuesco, gigantesco y colosal. La cantidad de dispositivos ralla lo absurdo, pocas veces habríamos imaginado hace una década que un sistema operativo pudiera ser tan ampliamente utilizado. Que se utilice tanto en EEUU como en la China no es algo que pasa todos los días.
Sin embargo, y a pesar de que Google obliga a los fabricantes a estar actualizados, el ritmo de adopción de KitKat y las últimas versiones sigue siendo bajo. Esto vuelve a poner de manifiesto el problema de crear una app para Android. Un camino más difícil, lento y complejo.
Claro está, los desarrolladores no programarán solo para Android por su filosofía más libre, sino por dinero. Único motivo válido hoy en día para la mayoría de empresas. La enorme cantidad de dispositivos y formas debería transformarse en ganancias, pero el público siempre preferirá la opción gratuita, y afortunadamente gracias a su naturaleza libre el precio medio de las apps en Android es mucho menor.
Los problemas para programar en Android variarán dependiendo de cada experiencia, pero hay mucho margen por mejorar. ¿No creéis?