Primeras impresiones de Android SDK

Tecnologias de Software Libre

Este año he empezado con fuerza y he iniciado a aprender Android. El objetivo será desarrollar algunos juegos y subirlos al Market (algunos gratuitos y otros a unos 50 centimos). Ya anteriormente había intentado hacer algo y las herramientas las conocía, pero siempre se había quedado atrás por falta de tiempo. En esta ocasión va en serio, es un objetivo prioritario.

Para instalación tan solo hay que seguir los pasos que están explicados.

•Descargas Eclipse
•Descargas el SDK de Android y lo instalas
•Instalas el plugin de Eclipse y lo configuras
Y con todo ello ya puedes hacer tu primer "hola mundo". También puedes probar alguna demo si quieres.

Hasta aquí todo normal hasta que empiezo a ver inconvenientes.

Inconvenientes:

Memoria.

Lo primero de todo, al ser emulado traga multitud de memoria. Está bién que el dispositivo emule bién el dispositivo pero ¿no puede haber una versión ligera con las opciones mínimas?. Es increible como cuando llevas 30 minutos programando (o más bién desplegando) deja de funcionar el emulador, eclipse, etc. Esto os comento en Windows. Lo he probado también en un Linux Ubuntu 10.10 y funciona un poco mejor, en vez de caer a los 30 minutos cae a los 60. Pero sigue utilizando mucha memoria.

Lentitud de despliegue.

El primer despliegue es bastante lento pero una vez arrancado el emulador, cada vez que despliegas genera el paquete y lo sube al emulador. Lo cual significa que si tengo una aplicación con muchos resources, cada despliegue será eterno. Esto habría que mejorarlo. El sistema se parece un poco a los Ant de JEE que generan el paquete entero. Está bién tener un paquete generado que sea la aplicación, pero cuando estás desarrollando lo primordial es la velocidad de despliegue subiendo unicamente los cambios.

Depuración.

Al menos se puede depurar, pensé. En efecto, se puede depurar siempre y cuando no quieras cambiar el código al ver el error. Algo que es tremendamente util es la posibilidad de cambiar el código mientras se está ejecutando y que funcionen los cambios sin tener que volver a rearrancar y/o redesplegar la aplicación.

No hay console.

O al menos aún no la he encontrado. No puedo decir que no haya pues quizá no haya buscado adecuadamente pero esperaba que cuando pusiese System.out.println("Algo"); se visualizase en la consola del eclipse.

Modo horizontal y modo vertical.

Una característica de los nuevos móviles es la posibilidad de girar el movil. Este es interesante aunque pone complejidad en el desarrollo ya que quizá la distribución de los componentes sean diferentes. Tienes la posibilidad de desarrollar unicamente para una orientación si quieres. La pega que veo es que si quieres desarrollar para las dos orientaciones el emulador solo visualiza una por lo que si quieres volver a testear si funciona para la otra orientacion debes volver a lanzar otro emulador y volver a probar todo.

Ventajas:

Aun así, me gustaría comentar alguna ventaja que le he visto:
Gestión de resources muy bueno. Está automatizado para que cargue imagenes de manera sencilla a través de una constante de una clase que se autogenera. Además tienes un directorio para poner diferentes imagenes según la orientación vertical-horizontal. Esto estaba interesante.

Doble buffer.

Al pintar en pantalla ya se dispone de un doble buffer. Aun no tengo claro como puedo provocar el repaint(), pero poco a poco me iré haciendo. Comentar que todos los juegos consistiran en cargar imagenes y moverlas en un canvas. No hay componentes prediseñados.

Fuente: JorgeRubira

Tema Relacionado: Tecnologias de Software Libre