2010-05-31 3 views
5

Je voudrais en savoir plus sur les avantages et les inconvénients de l'utilisation de l'interface constructeur lors du développement d'applications iPhone/iPad.Dois-je utiliser un constructeur d'interface ou non?

J'ai écrit une application assez complexe et personnalisée qui se trouve sur l'App Store en ce moment, mais toutes les interfaces sont codées à la main car elles sont assez complexes. J'ai personnalisé la barre de navigation et les onglets avec des arrière-plans, les cellules de vue de table sont dessinées manuellement pour la vitesse, et certaines vues sont complexes et évolutives avec de nombreuses sous-vues. Je réfléchis à la possibilité de commencer ou non à utiliser le constructeur d'interface, mais je ne suis pas sûr de savoir dans quelle mesure je vais l'utiliser et si ça vaut vraiment le coup. Est-ce plus rapide? Est-ce que les choses peuvent encore être facilement personnalisées?

Tout conseil serait le bienvenu!

Répondre

3

Il n'y a absolument aucune raison de ne pas l'utiliser. Une chose qui effraie les gens, ce sont leurs expériences avec d'autres outils GUI, des choses qui ont généré du code pour eux ou un autre gâchis. Ensuite, le problème est qu'il est difficile de faire un aller-retour de l'interface, vous ne pouvez pas facilement modifier les choses une fois qu'elles sont générées en raison de la complexité de repousser ces changements dans le code émis. Interface Builder ne génère pas de code, il utilise NSArchiver pour lire et écrire un graphique d'objet réel pour l'interface graphique. Cela présente de nombreux avantages, en commençant par le fait que vous pouvez facilement faire un aller-retour de l'interface et effectuer des changements incrémentiels. C'est vraiment tout bon, utilisez-le. :-)

+0

Si vous deviez générer dynamiquement vos vues, comment tireriez-vous parti de IB? –

+1

@ pgpb.padilla Souvent, vous pouvez composer les composants que vous utilisez pour construire la vue dans IB, puis les instancier comme vous le souhaitez pour votre génération dynamique. Un exemple commun de ceci est une table où chaque rangée est une vue indépendante qui est générée à la volée. Les plus petits éléments et être construit dans IB tandis que la plus grande configuration est gérée dynamiquement. Quel genre de génération dynamique avez-vous en tête? – Ukko

+0

Je pense que je comprends ce que vous dites, le scénario que je pense est la suivante: supposons que vous consommez un service JSON qui a la spécification de l'interface utilisateur: identifiant de contrôle, type (date, entrée, étiquette, etc). Le nombre de contrôles est variable en fonction des paramètres transmis au service. –

0

Il n'y a pas de cons. Pourquoi ne pas l'utiliser? Ca rend tout plus facile :)

1

Personnellement, j'ai trouvé Interface Builder assez difficile à monter en puissance, et parfois il n'expose pas toutes les propriétés que je veux éditer (bien que cela puisse avoir changé dans les versions plus récentes), donc généralement je J'ai eu tendance à créer mes interfaces utilisateur dans le code.

Si vous utilisez Interface Builder, assurez-vous de prendre en compte la localisation. Apple iPhone Developer docs recommande que la NIB soit une ressource localisée qui est traduite. De cette façon, le traducteur peut voir si le nouveau texte s'inscrit dans la vue. Malheureusement, cela signifie que le traducteur doit être capable d'ouvrir les fichiers NIB et de les éditer (ou qu'un développeur doit s'impliquer dans le processus de traduction).

Personnellement, je préfère fournir des ressources de texte localisées et définir le texte sur l'interface utilisateur en code. Je fournis ensuite des commentaires dans le fichier Localizable.strings indiquant combien de temps le texte peut être et fournissant le contexte dont le traducteur pourrait avoir besoin.

Questions connexes