2009-08-26 21 views
5

Soy bastante nuevo en Cocoa. Estaba hablando con mi hermano, quien ha creado algunas aplicaciones para iPhone, y he dicho algo sobre Interface Builder. Dijo que no lo usa, construye sus UI programáticamente. Dijo que de esta manera, él no tiene que preocuparse por cargar el NIB. Entiendo que el uso de Interface Builder realmente crea instancias de objetos de view/window/button/etc que son serializados y deben ser deserializados cuando carga la aplicación, pero ¿es la deserialización tan costosa? De acuerdo, él está hablando de iPhone y estoy desarrollando en una MacBook Pro, pero aún así.¿No está usando Interface Builder, comprarme algo?

+2

Tu hermano está perdiendo el tiempo. Use IB hasta que no haga lo que necesita. – bbum

Respuesta

9

Todavía tengo que ver un argumento en contra de usar IB debido a razones de rendimiento, y habiendo usado ambos métodos no he notado ninguna diferencia en ambos sentidos. Para las aplicaciones más intensas, usualmente termino no usando IB solo porque es difícil construir vistas personalizadas complejas con él. Así que realmente tiendo a usar IB para las aplicaciones más simples y sigo el enfoque programático para las aplicaciones más complejas. Este enfoque obviamente también optimiza el rendimiento.

+6

Incluso para aplicaciones complejas, utilizaré IB para diseñar los sub bits de la interfaz de usuario en vistas que contienen simples y luego conectarlos juntos en la interfaz de usuario más grande mediante programación. – bbum

2

Si ambos métodos pueden ser útiles, recomendaría seguir el camino de Apple; es decir, utilizando Interface Builder (IB). Obtendrá menos código para escribir (y menos código equivale a menos errores, menos mantenimiento, menos trabajo;)!), Un proyecto mejor resumido, estará mucho más preparado para heredar futuros objetos provenientes de Apple (recuerde los Enlaces de Cocoa ...), y pronto también serás más productivo.

La comprensión de lo que está haciendo IB para usted (dirigiéndose a través del método de su hermano) es un muy conocimientos valiosos también; entonces, si puedes hacer ambas cosas en algunos proyectos li'l, haz eso. (Como otros dijeron, para interfaces de usuario complejas, esto le permitirá omitirlo a veces.) Pero aún así, al final, recomendaría usar IB.

+0

Ah, y solo una nota/corrección rápida: no estamos hablando de serialización aquí, sino de archivar; como IB también va a guardar en sus NIB los ID y las relaciones de sus objetos. –

6

Absolutamente aprende IB! Vale la pena y te ahorrará un tiempo incontable en el largo plazo. Entonces úsalo cuando puedas. Cuando no puede (alta complejidad) siempre tiene el enfoque programático pero le resultará mucho más fácil mantener sus puntas (IB) a medida que su aplicación crece y envejece.

2

Aunque Interface Builder es una pieza antigua de software, con sus raíces en el desarrollo NeXTSTEP, sigue siendo (IMO) una forma elegante de crear los aspectos visuales del software.
En este interview with Aaron Hillegass, dice que "los programadores de Cocoa experimentados ponen mucha inteligencia en su aplicación en el archivo NIB. Como resultado, su proyecto tiene mucho menos código".
Y como todos sabemos: "Less source code is better"

0

Depende mucho del tipo de aplicación. Los sistemas ERP con unos pocos cientos/mil páginas no se compilan con Interface Builder, hasta donde yo sé.

Cuestiones relacionadas