Deje de usar imágenes solo de retina

¿Qué sucederá si hago lo siguiente:

  • Sustituyo todos los activos que no son de retina por los activos de retina
  • Elimino todos los activos de retina en mi proyecto (Todo el ...@2x.png s etc.)

¿Por qué quiero hacer esto?

  1. Habrá less y less iPhones que no sean retina en el futuro (también debido a requisitos mínimos del SO, etc.)
  2. Obtengo un binary más ligero
  3. No tengo tantos files "casi duplicates" en mi proyecto que tengo que mantener por separado.

Ahora:

  1. ¿Reducirá el iPhone 3GS la image y la mostrará correctamente (con un poco de procesamiento por encima de la cabeza, por supuesto)
  2. ¿Un teléfono con "retina habilitado" podrá mostrar la image correctamente aunque ya no tenga el sufijo @2x en el nombre del file.

En el 99% de los casos, esto funcionará bien. Sin embargo, hay casos en que las imágenes no se escalarán correctamente (por lo general, dependiendo del modo de contenido). Trabajé con alguien que hizo esto exactamente y nunca noté un problema, aunque creo que es una práctica terrible.

Obtendrá un binary más ligero, pero le pide a los dispositivos más antiguos (con less memory) que hagan más trabajo. Si no desea admitir estos dispositivos, entonces no, creo que esto es mejor que ofrecer a los usuarios una aplicación potencialmente rota.

Existen mejores forms de networkingucir el tamaño de las imágenes en su aplicación, reutilizándolas siempre que sea posible, estirando, embaldosando, etc.

3GS y iPhone 4 mostrarán la image de forma incorrecta.

El hecho es que 3GS no networkingucirá la image. Por lo tanto, no mostrará la image correctamente. iPhone 4 escalará la image que no sea de 2x (escalarla dos veces) para que no muestre la image correctamente también.

Nada sucederá si decides hacerlo. Los dispositivos más antiguos intentarán, pero si permites que el dispositivo incluso ejecute tu aplicación, tendrás bastante trabajo solo para lidiar con los problemas de escala. Si permite que dispositivos más antiguos instalen su aplicación, deberá estar preparado para recibir la aprobación de Apple en dispositivos más antiguos también. Si las imágenes no funcionan correctamente en dispositivos anteriores, no obtendrá aprobación. También tiene razón de que cada vez hay less dispositivos con retina en service.

Pero … todavía hay algunos dispositivos sin retina todavía en service. Mantener ambos es bueno para tus usuarios. Sí, agrega un poco más de peso a su binary, pero con las velocidades de hoy en una variedad de networkinges, ese no es el problema como solía ser.

Si bien es su derecho elegir qué usuarios respaldar, y hay muchos desarrolladores que comparten su opinión, aún le toca a usted decidir qué grupo de usuarios desea apoyar en última instancia. Si está bien dibujando la línea con pantallas de retina, que así sea.

Podría decirte que debes apoyar a cada usuario, pero estoy seguro de que has pensado en eso. Si solo respalda los dispositivos de retina, hágalo. Si está preparado para responder preguntas sobre por qué este dispositivo es compatible y otro no, responda. La buena noticia es que, no importa lo que decidas, tendrás razón … eventualmente. Buena suerte.