7
votes

Quand devrais-je utiliser le constructeur d'interface?

Alors que j'apprends l'API iPhone, le livre que j'utilise m'a fait tout ce qui est possible avec le constructeur d'interface. Nous (seuls ici parfois) écrivez un code aussi, mais j'ai vraiment l'impression de connaître assez bien le constructeur d'interface.

Je sais que le constructeur d'interface est différent des autres constructeurs d'interface graphique, car il utilise des objets sérialisés et ne pas écrire de code. Ceci est censé une bonne chose. Donc, dans le travail quotidien, est-ce l'outil de choix, ou devrais-je essayer de surmonter ma dépendance sur le constructeur d'interface?

Aussi: si vous suggérez que "cela dépend de ce que vous faites", que cela dépend-il? Comment dois-je prendre la décision d'utiliser le constructeur d'interface ou non?

Note: La version subjective et argumentative de cette question a été intitulée, Builder d'interface: Un outil sérieux ou juste pour les enfants? Mais j'ai décidé de cela puisque je veux éviter Obtenir la question fermée.


0 commentaires

5 Réponses :


13
votes

Builder d'interface est vraiment utilisé pour créer des applications. Jetez un coup d'œil à n'importe quelle application MAC basée sur le cacao - qui est la plupart qui ne sont pas par Adobe ou Microsoft - et vous verrez qu'il est plein de NIBS. Il est légèrement plus courant que l'apps d'iPhone soit effectué sans constructeur d'interface (car le SDK d'origine expédié sans IB), mais c'est toujours un outil très couramment utilisé.

La différence entre Builder d'interface et la plupart des autres constructeurs d'interface graphique est que Cocoa et Builder d'interface ont été conçus dans l'autre. En fait, si vous recherchez le Archives de la liste de diffusion CACOA , vous trouverez de nombreuses personnes au fil des ans, vous vous demandez comment il s'agit Possible de créer une application de cacao sans à l'aide de Builder d'interface. (La réponse est toujours la même: vous pouvez tout faire en code, mais vous vous gaspillez simplement votre temps et que vous rendant plus difficile la conception d'une bonne interface.)


3 commentaires

Merci, c'est un peu ce que je pensais. Au moins, c'est une note positive sur une journée remplie de comptage de référence.


Je sais que c'est une vieille question et une ancienne réponse - Cependant, je suis totalement d'accord avec cette réponse.


@Moszi, vous pourriez aussi bien passer à toutes les réponses de Chuck ici. Ils sont toujours perspicaces et informatifs.



3
votes

Builder d'interface est génial si vous envisagez d'utiliser des éléments d'interface utilisateur UIKIT standard. Utilisation de l'interface Builder pour concevoir des interfaces utilisateur basées sur Uikit vous aide également à vous conformer au Directives d'interface humaine Apple iPhone .

Il n'y a qu'une poignée de cas où vous ne voudriez pas utiliser l'interface Builder, le plus évident d'être des jeux qui offrent leur propre look et leur sensation unique.

Je ne pense pas que vous devez vous préoccuper de construire une «dépendance sur le constructeur d'interface». C'est un outil, comme tout autre. L'utilisation de ce n'est pas une dépendance, c'est comme si nous obtenons les choses.


1 commentaires

Merci Brian, ce n'est pas vrai avec d'autres outils d'interface graphique sur d'autres plates-formes. Le code créé avec des constructeurs souvent a l'air horrible et peut être difficile à maintenir. Donc, je ne pense pas que ce soit comme n'importe quel autre outil. Il semble s'intégrer bien sans l'utiliser, aussi, ou l'utiliser parfois.



3
votes

Builder d'interface est un excellent outil. Utilisez-le autant que vous le pouvez.
Lorsque vous ne pouvez pas effectuer quelque chose à l'aide de l'interface Builder, il est temps d'écrire du code qui mixent Iboutlets et code, ou le faire en code uniquement.


0 commentaires

2
votes

Builder d'interface ne génère pas de code, il crée simplement un graphique d'objet des classes existantes. Si vous regardez le fichier NIB, vous pouvez voir cela. Son juste une liste de règles pour les objets à créer et quelles relations à définir entre eux. Il n'y a pas de code dans une nib et il y a étonnamment très peu de code sur les diverses méthodes loadfromnib .

C'est l'accouplement d'exécution dans l'objectif-c qui rend tout cela possible. Je n'ai aucune autre langue ne peut vraiment le retirer.


2 commentaires

Peut-être que je me trompe, mais je pense que même Java possède un couplage d'exécution (via une réflexion et une invocation dynamique) ... Bien qu'il n'y ait pas de constructeur d'interface, il est théoriquement possible dans de nombreuses langues. Non?


Java a été inspiré en partie par Objective-C de sorte qu'il ne se rapproche, mais IIRC, Java n'a pas de contrepartie à la référence "ID", ce qui n'est pas aussi flexible que l'objectif-c à cet égard. Chaque langue a quelque chose qu'il fait mieux que d'autres et les couples d'exécution sont objectifs-C fort.



4
votes

oui il y a une petite différence. La différence est que l'IB utilise peu plus de stockage de stockage et de RAM que l'interface générée par programmation. Voici mon exemple simple. {je suis nouveau dans obj-c}

Entrez la description de l'image ici

Le code source et l'application binaire ici http://www.mediafire.com/download/9ph1zs1kyag9f1g/testDifence_ib-programmatique. Zip


0 commentaires