Debug iPhone5, release iP5 & iP4<
Freyskeyd
Membre
::
Bonjour,
Je travaille actuellement en debug (en dev) sur un iPhone5, je base donc mon intégration graphique sur la taille écran de l'iphone5.
Mais ceci dit, je voudrai savoir quelles sont les bonnes pratiques pour adapter une intégration à la fois sur iP5 et iP4<.
Je cherche mais je ne trouve pas de réel concordances..
Cordialement,
Simon!
Bonjour,
Je travaille actuellement en debug (en dev) sur un iPhone5, je base donc mon intégration graphique sur la taille écran de l'iphone5.
Mais ceci dit, je voudrai savoir quelles sont les bonnes pratiques pour adapter une intégration à la fois sur iP5 et iP4<.
Je cherche mais je ne trouve pas de réel concordances..
Cordialement,
Simon!
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Un exemple tout bête avec l'application Music d'Apple. Dans la vue player ils ont décidé de laisser la barre de temps visible sur iPhone 5, tandis qu'il faudra effectuer un tap sur l'iPhone 4 afin de l'afficher ou la masquer (elle va se superposer à la cover alors qu'elle prend vraiment un espace dédiée sur l'iPhone 5).
Concernant le fait de savoir si on se trouve sur un iPhone 5 ou non, il semblerait que la seule solution soit de vérifier la taille de l'écran
Yoyo,
on ne peu utiliser
?
A++
/size][/font][/color][color=#660066][font=monospace][size=3]UIDevice[/size][/font][/color][color=#000000][font=monospace][size=3] currentDevice[/size][/font][/color][color=#666600][font=monospace][size=3 systemVersion].
renvoie la version du système installé sur le device, donc tu ne pourra pas trop savoir si c'est un iPhone 5 ou 4, puisque on peux installer toutes les version sur le deux systèmes.
Et de toute façon ça serait une très mauvaise pratique (c'est ce genre de mauvaise pratique qui a fait démarrer la guerre dans le monde Web/HTML, où chacun testait quel était le browser au lieu de tester la capacité qui l'intéressait... du coup quand les versions évoluaient ça devenait le bordel d'incompatibilités).
Il faut toujours tester ce qui nous intéresse, et pas une propriété dont on pense être la cause de ce qui nous intéresse. Si tu veux savoir si un objet roule, tu testes pas si c'est une voiture ou un camion. Car tu vas oublier de tester le cas des vélos, et puis quand tu as fait ton test le Segway n'existait pas mais maintenant qu'il existe c'est con de pas l'inclure...
Là c'est pareil, en vérité on ne cherche pas à savoir si on est sur un iPhone 5 ou un iPhone 3GS/4/4S. On cherche à savoir quelle est la taille de l'écran. C'est ça la vraie info qui nous intéresse. Donc [UIScreen mainScreen].bounds.size.
Et encore, pour être même plus précis, ce qui nous intéresse en général c'est la taille de l'espace disponible dans lequel on peut dessiner notre design, faire tenir notre application. Cet espace dépend de la taille de l'écran de l'iPhone, mais aussi de plusieurs choses, dont le fait que la status bar soit visible ou non, si elle est visible ça dépend si on a un appel en cours (ou une navigation dans Plans, ou un enregistrement audio en cours, ou un partage de connexion) où dans ce cas la statusBar est plus grande que les 20pt habituels, ça dépend de l'orientation du device (car dans ce cas la statusBar n'est pas sur le même bord, etc...
Donc la vraie valeur à tester c'est pas les bounds du UIScreen mais son applicationFrame, propriété qui sert typiquement à ça.
Je vous renvoie à la session des CocoaHeads de Rennes récente où iSofTom explique tout cela en détail.
En tout cas beaucoup de gens ne pensent malheureusement pas à tester leurs softs dans toutes les configurations possibles de taille d'écran. Il est loin de n'y avoir que 2 cas (iPhone à écran 3.5" et iPhone 5 avec son écran 4"), il y en a autant que d'orientations * nombre de cas de statusBar (pas de SB, SB taille classique, SB grande taille) au moins, et ça c'est que pour quand on est intéressé par la taille totale de l'espace dispo à toute l'appli. Il y a bien des cas où on peut même aller plus loin et où ce qui nous intéresse c'est la taille de la vue du UIViewController courant, en prenant en compte (en plus de tous les cas précédemment cités) la possibilités d'une UINavigationBar, UITabBar... le fait que ce UIViewController pourra un jour être pourquoi pas utilisé dans un PopOver sur la version iPad de l'appli si un jour vous la portez dessus, ou pourra être utilisé comme ChildViewController autre part...
Cessez de tester si vous êtes sur iPhone 5 ou pas. Testez la taille de l'écran, ou même la taille de la vue qui vous intéresse directement.
#HumourDeComputerGeek
J'ai pas osé la faire... /clap.gif' class='bbc_emoticon' alt=' ' />
c'est du à une déformation de convention de nommage dans une entreprise /smile.png' class='bbc_emoticon' alt=':)' />
Et je trouve ça plus clair /tongue.png' class='bbc_emoticon' alt=':P' />
Edit: Merci pour l'explication AliGator, je suis aussi de l'avis que l'ont doit tester ce dont on a besoin à l'instant T.
Bonjour,
je reviens vers vous car je commence déjà à avoir des petits problèmes de compatibilité entre les 3,5 et les 4"... notamement avec les tableView.
J'aimerai avoir votre avis sur une best practice à mettre en place pour que mes vues soit correcte en fonction du device.
Dois-je réaliser deux storyboards?
Dois-je modéliser un storyboard uniquement en 3,5"?
Je ne sais vraiement pas par où le prendre.
Je ne peux pas non plus utiliser le auto layout car cela n'est pas compatible avec certaines de mes vues...
A++ et merci!
D'accord mais la actuellement j'ai un probleme avec une vue.
J'ai une vue qui contient un UIScrollView, qui prend 90%, et un Page control en bas.
Quand j'appel une autre vue (à 100%) dans ce UIScrollView le haut est masqué.
Donc soit je m'y prend mal dans la création des vues appellé soit je ne sais pas
Pour l'autoresizingMask, je dois positionné les curseurs de contraintes comment?
Toujours callé en haut? au milieu? au centre? à gauche?
merci encore Ali /wink.png' class='bbc_emoticon' alt=';)' />
Pour les curseurs de contraintes de l'ARM ça dépend de ce que tu veux comme comportement...
T'as pas un petit dessin pour expliquer exactement ta hiérarchie de vue ?
Ok, après plusieurs essai j'ai compris comment faire.
Mon nouveau problème est la compatibilité IOS5.1, le simulateur n'exécute pas mes IBAction...