«

»

jun 30 2012

Lo último en herramientas para desarrolladores

 

 
El pasado Jueves asistimos (virtualmente, por desgracia) a la charla sobre novedades en las herramientas para desarrolladores Android, en la que nos enseñaron el trabajo que han hecho desde el año pasado y algunas cosas que están por venir próximamente. Vamos a dar un repaso rápido a todas estas novedades, en su mayoría incluídas en el nuevo ADT 20.

 


 

Emulador

El emulador de Android es uno de los temas más polémicos para los desarrolladores. Por requisitos del sistema éste debe emular un dispositivo real completo, y dado que la arquitectura de procesadores para la que está hecho Android (ARM) es diferente al de nuestros ordenadores (x86) el coste de la emulación es muy grande. Por ello el rendimiento del emulador se resiente, y mucho, hasta el punto de ser imposible de usar en configuraciones como Tablets. Todos nos hemos desesperado alguna vez al pulsar un botón y esperar varios segundos hasta que reaccione.

Recientemente esto se ha mejorado gracias al soporte de emulación mediante la GPU de OpenGL. De esta forma nuestra GPU hará el renderizado, agilizando el procesamiento de la parte visual. También ha sufrido una importante mejora gracias a la contribución de Intel para dar soporte a virtualización en x86 (en Linux ya la tenían, ahora la añaden a Windows y Mac). Todo junto convierte el emulador en una herramienta usable al menos.

También han mejorado la emulación del hardware del dispositivo. Hace algún tiempo añadieron la posibilidad de usar la webcam del ordenador como fuente para la cámara. Recientemente han añadido también soporte para sensores y multi-touch usando un dispositivo real conectado.

También están trabajando para añadir al asistente de creación del emulador la característica de configurarlo automáticamente con las características de un dispositivo real que podremos elegir de una lista. Además los emuladores que creemos nos saldrán en el editor gráfico de interfaces para comprobar directamente cómo se verán éstas con su configuración.

 

Editor de XML

Han mejorado algunas cosas de del editor de XML, como el quick outline para recursos, autocompletado de atributos en vistas propias y un formateador propio de código que corrige indentaciones y orden de atributos. Esto último es quizá lo más interesante, aunque está con nosotros desde ADT 14, para dejar el código XML mucho más claro y legible; además el formato es propio de cada tipo de archivo, no formatea igual los layout que los strings o el Manifest. Muy útil.

 

Nuevos asistentes

Han creado algunos nuevos asistentes de creación y mejorado los existentes. El de nuevo proyecto Android ha sido reescrito, con funciones como información detallada y ayuda, creación de icono personalizado gracias a Asset Studio, y asistente para creación de diferentes tipos de Actividades.

Voy a detenerme más en lo último, porque me parece una característica estupenda. Hay que verlo en directo para comprender su potencial, pero básicamente esto nos contruye el proyecto con actividades más avanzadas (o las añade a uno existente) que el Hello World que teníamos hasta ahora. Desde actividades con ViewPager ya implementado, con pestañas, indicadores de página, navegación con dropdown… hasta estructuras complejas como la de lista/detalles con 2 actividades separadas en el teléfono y vista dividida en Tablet (al igual que Gmail o Ajustes). Para muestra las capturas más abajo son de actividades generadas automáticamente como comento, sin yo haber tocado NADA de código. Tal cual.

 


 

Impresionante, ¿no? Las actividades se pueden añadir a un proyecto ya existente, y se declararán automáticamente en el AndroidManifest.xml. ¡Que levante la mano quien alguna vez se olvidó de añadir una actividad y le dio error al ejecutar!

El punto negativo es que de momento sólo está disponible si usamos ICS, aunque están trabajando en compatibilizarlo con versiones anteriores. Nos avisan también de que en el futuro vendrán más asistentes. Me parecen genial estos detalles, pues agilizan mucho el desarrollo cotidiano. Veremos qué sorpresas nos traen.

 

Editor gráfico

Este es otro de los puntos flacos del desarrollo en Android, y a la vez uno de los que más ha mejorado con el tiempo. Para ADT 20 lo han rediseñado, mejorando el uso del selector de configuraciones, o integrando las paletas de componentes, estructura y propiedades en la misma ventana al maximizar el editor gráfico aprovechando mucho más el espacio de la pantalla.

La paleta de propiedades también ha sido mejorada radicalmente, con colores, drawables, propiedades heredadas, agrupación por grupos según importancia… Personalmente, antes nunca la usaba porque era una pérdida de tiempo, ahora eso puede cambiar.

Han terminado y mejorado la edición gráfica del RelativeLayout que nos enseñaron el año pasado. También están trabajando en mejorar el soporte de otros layouts, como el nuevo GridLayout (aunque personalmente me gusta más cómo lo hacen en IntelliJ IDEA).

Otra mejora ha sido el soporte para previsualización de Fragments, pudiendo incluso editar su correspondiente layout sobre la marcha en el principal.

Volviendo al selector de configuraciones (los botones de arriba), lo han organizado mejor a la hora de seleccionar temas y tamaños de pantalla, el idioma, etc. También han añadido la opción de especificar a qué actividad corresponde la interfaz para (en la próxima versión) detectar automáticamente desde el Manifest qué tema le corresponde, y “quizás para algo más”.

Una nueva función, que aún no está lista, es la multi-configuración. Es difícil de explicar con palabras, será más fácil que lo veáis en la imagen de abajo. Básicamente es una opción para ver simultáneamente el layout en varias configuraciones de diferentes tipos, que se irán actualizando dinámicamente conforme modificamos la interfaz.

 

 

Una herramienta muy potente, me encanta.
 

Lint

Desde hace algún tiempo salió a la luz la nueva herramienta llamada Lint. Básicamente lo que hace es escanear el código para buscar errores “potenciales”, es decir cosas que están bien de cara al compilador, pero que en nuestro contexto, el de Android, pueden dar o darán error. Cosas como usar métodos que no están disponibles en todas las versiones que soportamos, o usar cadenas directamente en los xml en vez de ponerlas mediante recursos. La lista de comprobaciones de Lint es inmensa, podéis verla aquí.

Desde su salida lo han ido mejorando poco a poco, así como su integración con Eclipse y los diferentes editores. Nos destacan una comprobación, que aún no está implementado (y todavía tardarán), para comprobar que nos faltan permisos que necesitamos. Seamos sinceros, ¿quién no ha perdido horas delante de el código hasta darse cuenta de que está usando Internet sin declarar el permiso? Detalles como éste, vuelvo a decir, nos hacen el día a día más fácil.

 

Nuevas herramientas de debug

Una breve mención a algunas nuevas herramientas que han introducido:

  • Tracer for OpenGL ES: es una herramienta para debuggear código de OpenGL, y está disponible sólo para Jelly Bean en adelante, y no es compatible con el emulador.
  • Android Debug Monitor: No es tanto una nueva herramienta, sino una que engloba al resto (DDMS, Traceview, HierarchyViewer, Tracer for OpenGL). Por ahora seguirán maneniéndolas también separadas, pero en un futuro las eliminarán para dejar sólo el Android Debug Monitor.
  • Systrace: Una nueva herramienta para ver con más detalle lo que nuestra aplicación hace en los entresijos del dispositivo. Romain Guy y Chet Hasse dieron otra charla en la que usaron esta herramienta con más detalle: For Butter or Worse: Smoothing Out Performance in Android UIs
  • Soporte para NDK en Eclipse: Como su nombre indica, han añadido soporte para el kit de desarrollo nativo en Eclipse. Aunque está en fase beta.

 
En definitiva, muchas cosas que nos demuestran que en Mountain View se preocupan por los que al fin y al cabo, hacen que su plataforma pueda o no tener éxito. Para finalizar a continuación os dejo el vídeo completo por si lo queréis ver.

 

 

Acerca del autor

Rafa Vázquez

Estudio Ingeniería Informática del Software en Sevilla. Me considero geek sin dinero, amante y desarrollador novato de Android. He creado algunas aplicaciones como SeviBus, TicTacDroide, Kill Bieber y Traductor Hoygan, si es que se puede llamar aplicaciones a estas dos últimas ;) Ganas de aprender más y más no me faltan, e intentaré compartir mis experiencias con vosotros en la medida de lo posible.