2009-03-13 10 views
5

He estado programando con el iPhone SDK desde hace algún tiempo.Archivos NIB/XIB con programación Cocoa: ¿tiempo de desarrollo más rápido?

No he usado Interface Builder. Esto me asusta un poco. Sé que, en efecto, puedo estar 'peleando contra el marco', pero no lo veo así.

Me resulta muy fácil simplemente crear una instancia de mi UITabBarController en mi delegado de aplicaciones, crear una instancia de UINavigationController, luego presionar y abrir los controladores de vista sobre la marcha.

Naturalmente no tengo un conocimiento extenso de cómo diseñar una aplicación con archivos XIB porque nunca lo he hecho, sin embargo, sé el sentido general de ello, habiendo construido algunas aplicaciones para Mac en Cocoa usando NIB. Entonces no soy completamente ignorante.

Mi pregunta es si hay un aumento en el tiempo de desarrollo cuando se elige diseñar UITableViewControllers y UIViewControllers utilizando XIB en lugar de crear instancias de programas de ellos y luego configurar los ivars.

Según lo veo, ambos métodos todavía requieren que subclass el controlador de vista para la personalización que probablemente ocurrirá para la mayoría de sus puntos de vista. Además, todavía hay clases manuales requeridas para los delegados, y el proceso de conectar puntos de venta desde dentro del XIB parece comparable a mí desde el establecimiento de un ivar.

¿O me falta algún otro punto importante?

Gracias!

Respuesta

1

No se preocupe demasiado, el IMO Interface Builder también está un poco sobrevalorado.

Definitivamente es útil para que las cosas funcionen rápidamente, o si tienes una aplicación con muchas pantallas que son tediosas de configurar, pero no te falta mucho.

+0

+1 para contrarrestar un downvote drive-by. No estoy de acuerdo, pero tiene derecho a expresar su opinión. – Abizern

2

El código lleva mucho más tiempo escribir para configurar las IU que IB.

Además, puede pasar el diseño a los diseñadores y dejarles ajustar la interfaz de usuario.

+0

¿Exactamente cuánto ajustes puede hacer un diseñador con un archivo XIB? No creo que haya mucho aparte de ajustar las opciones establecidas y cambiar el tamaño de las vistas. Estas son cosas que ni siquiera ocupan una gran cantidad de tiempo cuando se diseña para el iPhone. –

+1

Estaría sorprendido. He visto cambios bastante dramáticos en algunos archivos XIB en las manos de un buen diseñador, una vez que aprenden la herramienta. Además, no tiene que hacerlo. ¡El mejor código es el código que no tienes que escribir! – Genericrich

2

Al final ambos logran lo mismo. Debe usar cualquiera de las dos dependiendo de las circunstancias. La mayoría de las veces escribir el código para crear y posicionar vistas, y especialmente mantenerlo en el camino, tomará mucho más tiempo que el uso de IB. Sin embargo, en una aplicación simple para el iPhone, esto podría no ser cierto y sería mejor que crear todo en el código. Básicamente, debe saber cómo hacer ambas cosas y elegir la ruta que implique el código más claro y el desarrollo más rápido.

2

IB brilla cuando lo usa para mostrar vistas; incluso dos o tres vistas pueden ser una verdadera molestia para diseñar y configurar en el código. Tiendo a usarlo para la barra de pestañas y los controladores de navegación, y en ocasiones para los subcontroladores (generalmente solo si creo que el usuario es muy probable que lo use), pero eso es más porque ya estoy allí, así que lo encuentro conveniente.

Con esta nueva versión 3 del sistema operativo que están anunciando la próxima semana, espero que Interface Builder gane algo de la flexibilidad que tiene en Cocoa, donde puede agregar paletas para sus propias clases e incluso crear complejas no vistas estructuras de datos (mediante el uso de paletas personalizadas). Sin embargo, tendremos que ver.

+0

En layoutSubviews(), cambia los valores CGRecta en el código. En IB, cambia los mismos valores usando un cuadro de entrada de formulario. Para la barra de pestañas y los controladores de navegación, cuando se agregan botones, todo lo que se hace es configurar el BarButtonItem izquierdo/derecho. En IB puede ver el panel de información y cambiar los botones allí. –

+0

Solo digo que sí, ambos logran lo mismo. Pero la verdadera pregunta a la que me estoy refiriendo es si hay una mejora en el tiempo de desarrollo usando una sobre la otra. Los ejemplos que acabo de dar parecen tomar el mismo tiempo para lograrlo. –

+0

Olvidé una cosa. En IB puede arrastrar vistas, organizarlas y ver cómo se ven, y luego ajustar sus coordenadas más adelante para refinarla. Programativamente puede lograr lo mismo creando la aplicación, visualizándola y luego cambiando los valores rect en consecuencia. De nuevo, ambos parecen similares. –

0

Para los usos que usted describe simplemente haciendo cosas en el código está bien, y posiblemente incluso un poco más fácil de entender.

Presentando vistas, o celdas personalizadas aunque ...luego te metes en una tonelada de configuración de fuente/color/posición que rápidamente explota en una gran cantidad de código, difícil de mantener y modificar. Es mucho más fácil ajustar lo que quiere en IB en esos casos.