Android, su SDK y sus XML, ni contigo ni sin ti
Como bien sabréis una aplicación Android se basa en dos apartados, la parte gráfica y el código. En este caso el apartado gráfico se construye de manera visual en principio gracias al SDK de Android, pero si lo comparamos con otros SDK´s nos acabaremos dando cuenta de lo pobre que es, por lo menos para todas las versiones anteriores a HoneyComb (Android 3.0). Digo hasta HoneyComb ya que la interfaz cambia un poco, los widgets son distintos y es una versión orientada a otro tipo de dispositivos, por lo tanto está algo verde pese al gran trabajo que han realizado y esperemos que lo mejoren aún más para cuando llegue Android “Icecream”.
Primer vistazo:
Antes de empezar a meter fondos y demás elementos a nuestra carpeta de recursos del proyecto, generalmente lo primero que tocamos suele ser el “main.xml”. Este fichero dispone de una extensión corta y realizar cambios o añadir código no supone mayor complicación más que la incomodidad de buscar entre los atributos uno por uno.
Fijémonos por el momento en Visual Studio 2010. Tenemos nuestra lista de widgets y a la derecha tenemos las propiedades de aquellos que arrastremos sobre nuestro formulario y pinchemos sobre ellos.
Este sistema se vuelve muy cómodo y fácil de usar, no asà como navegar entre todas las etiquetas de nuestro archivo XML para poder cambiar un “@string”, un color o un simple fondo. A esto podemos sumarle que un listado de propiedades es y será siempre muchÃsimo más cómodo que andar buscando uno por uno dinamicamente con el Control + Espacio de Eclipse.
¿Compatibilidad? ¡Sus carpetas!
Uno de los pasos más decisivos que tendrÃa que tomar la plataforma Android es la mejora de su SDK para facilitar la creación de interfaces de una manera más sencilla. Teniendo en cuenta que uno de los problemas de Android a dÃa de hoy es la fragmentación y la gran variedad de tamaños y tipos de pantallas que disponen los terminales que lo implantan, es un buen comienzo intentar automatizar todo ese tramite de compatibilizar la aplicación para los distintos móviles.
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:text="@string/lbl_email" android:id="@+id/lbl_email"
android:layout_width="120dp" android:layout_height="wrap_content"
android:textSize="18sp">
</TextView>
<EditText android:singleLine="true" android:layout_width="120dp"
android:id="@+id/login_email" android:maxLength="512"
android:layout_height="wrap_content" android:inputType="textEmailAddress"
android:hint="@string/required" android:layout_marginBottom="20dp"
android:textSize="18sp">
</EditText>
<TextView android:text="@string/lbl_password" android:id="@+id/lbl_password"
android:layout_width="120dp" android:layout_height="wrap_content">
</TextView>
Un buen ejemplo es el SDK de iOS que permite diseñar interfaces de una manera sencilla y eficaz (dejando de lado la complejidad de codificar después), aunque también deberÃamos tener en cuenta que Apple fabrica sus móviles y su SO es bastante especifico lo que aporta grandes beneficios a la hora de desarrollar para esa plataforma.
Os pongo un pequeño ejemplo, si estamos realizando una app y queremos ejecutarla en 3 móviles con 3 densidades de pantalla distintas, tendrÃamos que triplicar los archivos de imágenes que tenemos y cambiarles la resolución (véase hdpi, mdpi y ldpi), deberiamos cambiar los tamaños de los elementos que tengamos en los XML por “fill_parent”, “wrap_content” si es posible y de no ser asÃ, sustituir por “dp”, de tratarse de texto por “sp”…aburrido,tedioso y lento.
Cuando un programador con experiencia en su trabajo se encuentra ante esto puede quedarse un momento dubitativo, ¿Pero que pasa cuando no hay experiencia de por medio?. Para un programador novato no es facil anteponerse al código XML y la manera de tratarlo del SDK de Android y eso deberÃa de cambiar, cuanto antes a ser posible.
¿Ni contigo ni sin ti? No, de la mano de Init
Para concluir me gustarÃa añadir que pese a ser pesado y tedioso leerse un XML en busca de fallos o modificaciones, la practica hace la experiencia y para ello abordaremos de ahora en adelante los XML con más atención, dando explicaciones claras y fáciles de entender para todo el mundo en las próximas entradas. Recordad que si sois fans tanto de Android como de iOS o XML, podéis comentar y de este modo charlar sobre el tema para ver la diferencia de opiniones y puntos de vista. De momento os planteo las siguientes preguntas.
¿Es más fácil dibujar interfaces en iOS que en Android?¿Os parece XML un lenguaje fácil y claro?
Un saludo y os espero en los comentarios.


(3 votes, average: 8,67 out of 10)
