Es interesante fijarse en las distintas necesidades que tienen los desarrolladores. La primera vez que empecé a buscar un ecosistema para programar, tuve que fijarme en la interfaz de usuario. No nací sabido y sé por experiencia que no basta solamente con leer y leer libros sobre programación. Necesité de una ayuda real para empezar. Alguien que me dijese qué pasos ir dando. Porque así se aprenden las cosas más fácilmente que cuando las hace uno solo.
Lo más complicado, es la interfaz de usuario. Y si empiezas a aprender a programar por esta parte, mal vamos. Es lo peor que puedes hacer. Un principiante necesita las características proporcionadas por una superficie de diseño. Algo así como Visual Basic para Windows. Es mucho más sencillo clicar en un elemento botón y arrrastrarlo a la zona de diseño que programarlo desde cero.
Hace unos meses, empecé a trabajar con Android. Cuando vi cómo era programar para Android casi se me viene el mundo encima. Yo estaba acostumbrado a programar como expliqué antes. Es mucho más sencillo. Por desgracia, en Android no existía nada parecido a lo que yo estaba acostumbrado a usar. Aunque, pasado un tiempo, me topé con DroidDraw. Luego, un diseñador lo integró en Eclipse. Pero por desgracia, Mono para Android 1.0 fue inicialmente implementada sin un diseñador.
Lo malo de todo ésto es que los usuarios noveles (o poco avanzados) tenían problemas para saber por dónde empezar. A menos que supieras trabajar con un TextEdit, podrías perderte fácilmente tratando de encontrar un cuadro de texto (yo tuve esta clase de problemas). Afortunadamente, el lenguaje de la UI de Android está basado en XML. Esto permite que las definiciones de interfaz de usuario se transfieran entre DroidDraw, Eclipse y otras herramientas de desarrollo para Android.
Teniendo en cuenta el objetivo inicial de conseguir hacer correr Mono para Android, el apoyo a todas las características de Android y el apoyo a las diferentes versiones de Android, la falta de un diseñador era comprensible. El 14 de mayo, se lanzó Xamarin Mono para Android 4.2. Entre las muchas características nuevas de esta versión se encuentra la inserción de una superficie de diseño. Vamos a ver cómo es el diseñador de Xamarin para Android.
Después de instalar Mono para Android 4.2, al abrir un nuevo proyecto, veremos algo similar a la captura. Éste se ejecuta en Visual Studio 2010. Vemos como la superficie de diseño gráfico se emplaza en el centro de la pantalla y la caja de herramientas en el lado izquierdo. Algo muy simple.
La caja de herramientas contiene el conjunto de controles agrupados lógicamente. Vemos que algunos controles tienen varias versiones. Estos controles se diferencian, a veces, únicamente por un atributo. Por ejemplo, hay un LinearLayout horizontal y otro vertical.
En la parte inferior derecha de la pantalla tenemos las páginas de propiedades. Éstas les resultarán familiares a todos los que desarrollan en .NET. La página de propiedades nos permite cambiar varios parámetros, pero también va un paso más allá. Por ejemplo, con un ImageView, se pueden seleccionar los objetos dibujables incluidos en un proyecto, como se muestra en la siguiente captura.
Una de las características interesantes es el LinearLayout. El esquema del proyecto no se muestra de forma automática, hay que activarlo en el menú. Éste muestra la jerarquía del diseño. Además, es una vista en tiempo real de la disposición del proyecto. Aunque no es un indicador perfecto, sí ofrece al desarrollador una idea de cómo es el diseño jerárquico.
Los recursos son un concepto muy común en muchas plataformas, pero Android tiene un conjunto diferente de recursos a los que los programadores en .NET están acostumbrados. Para ayudar a acelerar el aprendizaje, el diseño se integra con estos recursos. Por ejemplo, un desarrollador puede seleccionar el texto en un botón, cambiar el texto, y hacer que el texto se haya actualizado en los recursos.
Este apoyo de ida y vuelta con los recursos en Android ayuda a los desarrolladores utilizar los recursos de forma sencilla. La siguiente captura muestra lo fácil que es seleccionar un recurso existente en nuestra aplicación mediante la selección de un recurso existente en una ventana emergente. Ésto se genera a través de la página de propiedades, haciendo clic en el botón de entrada.
Pero, las aplicaciones se ven de distinta manera según el dispositivo. Una aplicación que se ejecuta en un GalaxyS2 de 4 pulgadas con Gingerbread no se verá de igual manera que un GalaxyS con ICS y en modo apaisado. Las aplicaciones que se ejecuten con el sistema de idioma predefinido en inglés no se verán igual que si lo corre otro con el idioma del sistema predeterminado en español (siempre y cuando la app tenga localización).
El diseñador Xamarin Mono ha pensado incluso en éso. Cuando un proyecto se carga en el diseñador, hay una fila en la parte superior del éste que contiene una serie de opciones para ver el diseño. Las opciones que tienen los desarrolladores para la selección de la salida de pantalla incluyen:
- Dispositivos: El tamaño y la configuración general del dispositivo.
- Configuración del dispositivo: Ésta suele ser la orientación del dispositivo, sin embargo, están disponibles otras configuraciones más allá del vertical y apaisado (portrait y landscape).
- Versión de Android: Poco hay que explicar.
- Idioma / Región: Lo que hablábamos en el anterior párrafo.
- Tema: Este es el tema que se usará en la visualización de la aplicación. Ésto se puede cambiar en cualquier momento.
- Y algunas cosas más que pueden descubrir ustedes. ;)
Siempre ha habido un amplio debate sobre si tiene más o menos valor usar o no un diseñador. Con el permiso de mis colegas desarrolladores diré que tiene un gran valor para poder desarrollar aplicaciones fácilmente. El diseñador proporciona una serie de ventajas, entre ellas:
- Los principiantes pueden empezar a crear una interfaz de usuario de manera sencilla.
- Los usuarios avanzados pueden aprender cosas nuevas. Se puede usar el diseño de un proyecto existente y de inmediato añadir algunas características nuevas.
- Hay menos necesidad de compilar, implementar y ejecutar para revisar la interfaz de usuario. El diseñador nos da una respuesta inmediata de cómo quedará todo.
El que desarrolle (o haya desarrollado) en .NET querrá saber como trabaja Xamarin en Visual Studio. La buena noticia es que funciona muy bien. Y por suerte, el diseñador trabaja en otras plataformas, incluyendo MonoDevelop 3.0 para Windows y MonoDevelop 3.0 para Mac. Ésto nos brinda un acceso al diseñador ya estemos corriendo en Windows o Mac. Por supuesto, puede haber ligeras diferencias entre las características expuestas en las diversas plataformas. Si hay diferencias, yo esperaría a que Xamarin las resolviera. Teniendo en cuenta sus horarios de liberación rápida y herramientas automatizadas de actualización, no creo que tardasen mucho.
¿Qué opinas sobre este tipo de herramientas para ayudar a los desarrolladores? ¿Estás de acuerdo o en desacuerdo conmigo? ¿Te ha servido ésto para lanzarte a programar en Android? ¡Exprésate en los comentarios!
Para saber más, visita este enlace.