¿Por qué deberíamos usar diseños xml?

Después de algunos años de desarrollo de Android, llevé meses preguntándome por qué debería usar diseños xml para hacer la interfaz de usuario de mi aplicación de Android.

Entiendo esa parte de MVC y el diseño de la interfaz gráfica en tiempo real.

Si estoy equivocado, sáqueme de la ignorancia y discúlpeme, pero no puedo establecer la posición de una vista, exactamente, el 8% del ancho de la pantalla para el margen y el 70% del ancho de la pantalla para el ancho, por ejemplo.

La creación de la interfaz de usuario de esa manera y el cuidado de la relación de aspecto de la pantalla garantiza que la aplicación se verá proporcionalmente exactamente igual en todos los dispositivos.

Como esta publicación lo resume, se nos dice que usemos unidades de inserción y un buen grupo de archivos xml para cada diseño de nuestra aplicación si queremos admitir pantallas diferentes. (¿Por qué lo llaman densidad-independiente si tenemos que hacerlo diferente para cada densidad de pantalla?)

Pero, incluso haciendo eso, como (de nuevo) el Google Doc dice

La relación de dp-a-píxel cambiará con la densidad de la pantalla, pero no necesariamente en proporción directa.

Y en lugar de no necesariamente, deberían decir sobre todo nunca mirar la increíble cantidad de dispositivos diferentes. Dependiendo de su proyecto, esto puede ser un problema. (¿O quieres que tu cliente mire tu interfaz de usuario “levemente descompuesta” en un dispositivo chino conocido)

Podría pedir lo mismo para los recursos de imagen, pero esa sería otra pregunta, utilizo para poner la resolución más alta en -nodpi y luego downscale por código al tamaño deseado dependiente del ancho de pantalla, en lugar de poner 10.000 imágenes en todas las resoluciones.

La creación de la interfaz de usuario de esa manera y el cuidado de la relación de aspecto de la pantalla garantiza que la aplicación se verá proporcionalmente exactamente igual en todos los dispositivos.

Esta es la forma en que Apple lo hace, y esta es la razón por la cual cuando abres una carpeta en un iPad de 9.7 pulgadas con una hermosa pantalla retina, solo muestra 9 íconos.

Una tableta no es solo un teléfono más grande. Realmente no es. Además, los dispositivos iOS tienen principalmente la misma relación de aspecto, por lo que así es como se ocuparon de la relación de aspecto.

Sin embargo, en Android no se puede decir simplemente que usted “solucionó el problema de la relación de aspecto” y que este problema desaparece mágicamente. Su mejor opción es usar las mejores prácticas de Android para manejar las proporciones de aspecto correctamente.

Dicho eso, no lo hagas tampoco. No necesita usar los 8 cubos de densidad, por ejemplo. Mira el tablero oficial para ver qué dispositivos están usando las personas en realidad, antes de intentar optimizar para cada escenario posible.

Además, no tienes que escuchar a Google todo el tiempo. Por ejemplo, estoy seguro de que a Google le encantaría que tradujes tu aplicación para que esté disponible en más de 68 idiomas diferentes en todo el mundo, pero lo que es bueno para Google no es necesariamente bueno para ti. Android realmente le permite elegir las herramientas que desea usar para crear su aplicación. No te obligan a usar ninguno en particular.