11
votes

Arrêtez d'utiliser des images de Retina uniquement

Que se passera-t-il si je fais ce qui suit:

  • Je substitue tous les actifs non-rétine avec les actifs de la rétine
  • Je supprime tous les actifs de rétine de mon projet (tous les ... @ 2x.png s etc.)

    Pourquoi est-ce que je veux faire cela:

    1. Il y aura de moins en moins d'iPhones non-rétina à l'avenir (également en raison des exigences minimales du système d'exploitation, etc.)
    2. Je reçois un binaire plus léger
    3. Je n'ai pas tant de fichiers "quasi-dupliqués" de mon projet que je dois maintenir séparément.

      MAINTENANT:

      1. Le iPhone 3GS
      2. Un téléphone "activé par la rétine" sera capable d'afficher l'image correctement même s'il ne dispose plus de suffixe @ 2x dans le nom de fichier.

0 commentaires

3 Réponses :


2
votes

3GS et iPhone 4 afficheront l'image incorrectement.

Le fait est que 3gs ne survolez pas l'image. Donc, il ne affichera pas l'image correctement. L'iPhone 4 mettra à l'échelle l'image non-@ 2x (échelle deux fois) afin qu'elle ne puisse pas aussi afficher l'image correctement.


2 commentaires

Vraiment? Quelles versions IOS que vous essayez?


iOS 5.0.1 sur iPod Touch 4, version 8 Go.



1
votes

Rien ne se passera si vous décidez de le faire. Les appareils plus anciens essaieront, mais si vous autorisez l'appareil à exécuter votre application, vous aurez un peu de travail simplement pour faire face aux problèmes d'échelle. Si vous autorisez les appareils plus anciens d'installer votre application, vous devrez être prêt à être approuvé à partir d'Apple sur des appareils plus anciens. Si les images ne fonctionnent pas directement sur des appareils plus anciens, vous ne serez pas approuvé. Vous avez également raison qu'il y a moins de moyens d'affichage de rétine en service.

Mais ... il y a encore de nombreux appareils non-rétine toujours en service. Maintenir les deux est bon pour vos utilisateurs. Oui, cela ajoute un peu de poids supplémentaire à votre binaire, mais avec les vitesses d'aujourd'hui sur une variété de réseaux, ce n'est pas le problème comme celui-ci.

Bien que vous ayez le droit de choisir les utilisateurs de soutenir, et il existe de nombreux développeurs qui partagent votre sentiment, c'est toujours à vous de décider du groupe d'utilisateurs que vous souhaitez finalement prendre en charge. Si vous dessinez bien, la ligne avec des écrans de rétine, alors soyez-le.

Je pourrais vous doigter - wagez-vous et vous dire que vous devriez soutenir chaque utilisateur, mais j'en ai certainement pensé à cela. Si vous prenez fin uniquement aux appareils de rétine, allez-y. Si vous êtes prêt à répondre aux questions sur la raison pour laquelle cet appareil est pris en charge et une autre n'est pas, allez-y. La bonne nouvelle est, peu importe ce que vous décidez, vous aurez raison ... finalement. Bonne chance.


2 commentaires

Alors dis-tu que l'image ne s'affiche pas correctement sur 3GS?


Je n'ai pas testé la théorie moi-même, mais il est possible que les appareils plus anciens affichent suffisamment les images de résolution plus élevées pour être approuvées. Votre seule option sûre consiste à exclure la prise en charge des appareils plus anciens.



7
votes

Dans 99% des cas, cela fonctionnera bien. Cependant, il y a des cas où les images ne seront pas à l'écaille correctement (généralement en fonction du contenu de contenu). J'ai travaillé avec quelqu'un qui a fait cette chose exacte et j'ai jamais remarqué un problème, même si je pense que c'est une pratique terrible.

Vous obtiendrez un binaire plus léger, mais vous demandez aux appareils plus anciens (avec moins de mémoire) de faire plus de travail. Si vous ne voulez pas prendre en charge ces appareils, je pense que cela vaut mieux que de donner aux utilisateurs une application potentiellement cassée.

Il existe de meilleurs moyens de réduire la taille des images dans votre application, de les réutiliser dans la mesure du possible, d'étirement, de carrelage, etc.


1 commentaires

Nommez simplement toutes vos images @ 2x et anciens appareils non-rétine fonctionneront bien. Cela a été mon expérience avec mes applications quand même. Il suffit de cibler iOS 5.x et plus et il vous suffit de traiter avec iPhone 3GS, iPad 1 et iPod 3 ...