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?
Respuesta
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.
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
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.
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. –
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.
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"
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é.
- 1. Usando Interface Builder para UITableViews
- 2. Xcode Interface Builder no se inicia
- 3. advertencias Interface Builder
- 4. Interface Builder UIDatePicker
- 5. iPhone Interface Builder y Delegados
- 6. Android Designer como "Interface Builder"?
- 7. Características ocultas de Interface Builder?
- 8. Usar Singleton In Interface Builder?
- 9. UIView personalizado creado con Interface Builder accesible/posicionable a través de Interface Builder
- 10. Convertir NIB en XIB sin Interface Builder
- 11. Apple Interface Builder: agregar subvista a UIImageView
- 12. Aplicación de iPhone sin usar Interface Builder
- 13. La integración de Interface Builder y Xcode no funciona
- 14. ¿Colores extraños en XCode Interface Builder?
- 15. NSTextField con NSNumberFormatter automático en Interface Builder
- 16. IBOutlet no se conecta en Interface Builder- Xcode 4.2
- 17. Problemas al utilizar UITapGestureRecognizers en Interface Builder
- 18. Xcode Interface Builder No muestra App Delegate Object
- 19. JavaScript Boolean Search Query Builder Interface Library?
- 20. ¿Puedo crear aplicaciones RubyMotion con Interface Builder?
- 21. se pueden agrupar elementos en Interface Builder
- 22. Tutorial de Interface Builder for iPhone
- 23. Actualizar clase UIView en Interface Builder
- 24. Cómo agregar MKUserTrackingBarButtonItem en Interface Builder
- 25. Nesting Custom Classes/XIB's con Interface Builder
- 26. ZBarReaderView clase desconocida en Interface Builder archivo
- 27. Fuentes que no se muestran en Interface Builder
- 28. Cómo usar UITableViewCell personalizado desde Interface Builder?
- 29. Imágenes en Interface Builder al usar MonoTouch
- 30. Vistas de grupo en Interface Builder
Tu hermano está perdiendo el tiempo. Use IB hasta que no haga lo que necesita. – bbum