La fragmentación de las pantallas en Android no es un problema real
Quizás el mayor problema de Android resida en su fragmentación. El hecho de que exista tanta diversidad en cuanto a versiones de Android en los terminales que hay en el mundo hace que pocos puedan disfrutar de la última versión disponible. ¿Son los fabricantes o es culpa de los diferentes tamaños de pantalla y resoluciones que intimidan a los desarrolladores?
Durante un tiempo se ha inculpado a los tamaños de pantalla de causar la fragmentación en Android ya que para los desarrolladores suponía un verdadero quebradero de cabeza. Pero esta acusación pasará a mejor vida ya que en RustyShelf nos demuestran como que existan diferentes tamaños de pantalla no supone un problema para los desarrolladores.
Muchas resoluciones y tamaños de pantalla
Cuando desarrollas una aplicación en Android, tú puedes incluir tantas imágenes como quieras con el fin de escalarlas posteriormente a cada pantalla. Es decir, puedes tener una única imagen lo suficientemente grande para escalarlas después según el dispositivo o tener varias plantillas que se adapten a diferentes tamaños de pantalla. A gusto del consumidor.
Pero el adaptar cada plantilla o una única plantilla a la pantalla de nuestro Android no supone ni mucho menos un problema dentro del código de desarrollo de la aplicación. ¿Por qué?, porque esta lista de resoluciones y tamaños de pantalla se encuentra en un archivo XML alejado del código base de la aplicación. Es decir, es una especie de «chuleta» para la aplicación, ya que accede a ella para ajustarse al dispositivo.
Para demostrar que el tamaño de pantalla no es un problema, os mostraremos los 10 dispositivos más recientes y sus respectivas resoluciones de pantalla:
- LG G3: 1440×2560
- Nexus 5: 1080×1920
- Galaxy S5: 1080×1920
- Galaxy S4: 1080×1920
- Galaxy S3: 720×1280
- Galaxy Note 3: 1080×1920
- Galaxy Note: 800×1280
- HTC One M8: 1080×1920
- HTC One M7: 1080×1920
- Nexus 4: 768×1280
- Moto X: 720×1280
De resolución en píxeles a 1px/1dp
Se puede ver en esa lista que las resoluciones de pantalla varían entre ellas aunque haya algunas similares como las FullHD y HD. Pero en el mundo del desarrollo Android es distinto.
Una pantalla puede tener distinta resolución de pantalla y distinta cantidad de píxeles por pulgada pero a fin de cuentas, tener una misma relación píxeles/dpi. Es decir, tan sólo habría que sustituir la plantilla de tu aplicación por otra más nítida para que mejore la visualización en la pantalla. No cambiar todas y cada una.
A continuación, como os hemos dicho antes, vamos a pasar las resoluciones de pantalla al formato px/dpi y ya veréis qué sorpresa:
- LG G3 @ 1x: 360×640
- Nexus 5 @ 1x: 360×640
- Galaxy S5 @ 1x: 360×640
- Galaxy S4 @ 1x: 360×640
- Galaxy S3 @ 1x: 360×640
- Galaxy Note 3 @ 1x: 360×640
- Galaxy Note @ 1x: 400×640
- HTC One M7 @ 1x: 360×640
- HTC One M8 @ 1x: 360×640
- Nexus 4 @ 1x: 384×640
- Moto X @ 1x: 360×640
¿Veis como ahora no hay tanta diferencia entre las pantallas?, ahora en esta lista de dispositivos hay tan sólo 3 tamaños distintos, dos de ellos únicos en la lista y predominando 360×640. Así que, el tamaño y la resolución de la pantalla no es un factor tan relevante a la hora del desarrollo de una aplicación de Android. No es ni mucho menos un paso fácil pero tampoco supone molestia extrema a los desarrolladores.
¿Qué ocurre con las tablets? El autor del artículo defiende que al tener la misma resolución es adaptable al tener la misma forma, aunque no tiene en cuenta aspectos como el modo apaisado o la diferencia de procesadores entre unos y otros. Igualmente, esta diferencia de experiencias en distintos tamaños es algo que con Material Design, Google quiere eliminar de una vez por todas. Afortunadamente, la tecnología en pantallas está acompañando ya que hemos visto una unificación importante de las resoluciones y ratios.
A continuación os dejamos con una imagen que refleja los tamaños de pantalla según este nuevo formato que hemos dicho, ahora la diferencia de pantallas no es tan grande, ¿verdad?. Hemos contado aquí las pantallas con botones software, recortándole esa pequeña parte.
Es cierto que existen muchísimos tamaños y resoluciones de pantalla distintos pero al fin y al cabo, la mayoría cumplen aspectos y ratios muy parecidos, con la excepción de algunos como el Moto E y su pantalla qHD, una resolución que pronto desaparecerá en los nuevos móviles.
La fragmentación existe, sí, pero si desarrollamos solo para Android 4.o o superior (algo que ya hace la mayoría) el problema de las pantallas desaparece al ser todas prácticamente equivalentes. Y aquí es donde abrimos el debate; ¿Hasta qué punto merece la pena dedicar más recursos para dar soporte a Gingerbread, recordemos que ya únicamente está en el 13%? ¿Creéis que Rusty tiene razón?
Más información Rusty Rants | Android Developers