¿Ventajas y desventajas de usar Storyboarding?

Llevo un time escribiendo aplicaciones para iOS y gradualmente pasé de hacer interfaz de usuario completamente programáticamente para usar el Interface Builder intensivamente. Ahora estoy pensando en utilizar la nueva function de Storyboarding para algunos de mis nuevos proyectos, pero no tengo suficiente experiencia ni conocimiento para calcular las ventajas y desventajas de hacerlo. ¿Alguien puede dar algunos ejemplos o información sobre cuándo se usó Storyboarding y cuándo fue una pérdida de time?

Ventajas del Storyboarding

  • Es genial, una forma suave de diseñar interfaces.
  • Uso de StoryBoardSegues para identificar relaciones de navigation / modal.
  • Si su aplicación admite múltiples dispositivos, es una buena manera de organizar diferentes vistas (por file de storyboard en lugar de nombrar, etc.)
  • Agradable para creación de prototypes
  • El prototipo UITableViewCell puede ahorrar time

Desventajas del Storyboarding

  • Es una function de time de ejecución, así que creo que solo está disponible en iOS 5
  • StoryBoardSegues es un poco rígido en mi experiencia y puede usar mucho prepareForSegue
  • Al igual que IB, no es muy amigable con otros motores de visualización y kits de herramientas.
  • Hace que sea difícil compartir layouts para una sola vista o set de vistas: tiene que enviar todo o nada

Estos parecen bastante superficiales, supongo que no me lo he pensado demasiado … Al principio estaba bromeando acerca de los tableros de historia, pero ahora he vuelto al IB o incluso solo la configuration de la vista programática … Cuanto más tengo usarlos, less me gustan, y más se sienten como un truco / pérdida de time.

Editar

Escribí esta respuesta hace unos años. Lo he dejado igual que antes para la posteridad, aunque es probable que algunos puntos ya no sean relevantes (es decir, el hecho de que requiere iOS 5+).

Después de un time, mi opinión no ha cambiado en storyboards. Como otros han mencionado, están bien si está trabajando solo en una aplicación con pocas vistas para administrar, pero se convierten en un verdadero dolor con el control y la queueboración de origen. Además, prefiero un file de un object, y los storyboards obviamente agrupan cosas juntas (al igual que IB, pero en menor medida).

Si escribiera una aplicación destinada a ser mantenida durante un período de time serio, iría con la configuration de vista programática sobre IB, pero definitivamente IB sobre storyboards.

Otra desventaja con Storyboarding no mencionada es que las combinaciones pueden ser muy difíciles, si no imposibles, si hay conflictos.

Actualización: También se me ocurrió que pone la lógica en dos lugares. Si su segue no está haciendo lo correcto, podría deberse a un error en prepareForSegue o podría deberse a que usted nombró su segue incorrectamente. Hacer cosas programáticamente es, al final, no tan difícil.

A más tardar, WWDC (2013), Apple Devs recomienda encarecidamente utilizar el storyboard y material IB incorporado para hacer la mayor parte de su código en lugar de escribirlo a mano, ya que es mucho más probable que evite la desaprobación y aproveche las actualizaciones de funciones a través de conversiones automatizadas .

La única desventaja es la dificultad para permitir la queueboración git en storyboards, ya que habrá conflictos en prácticamente todos los compromisos.

Si usted es un progtwigdor solo, siempre debe usar storyboards.

Tengo una experiencia similar a la tuya: empecé principalmente con la construcción de mi interfaz de usuario de iOS mediante progtwigción, ya que IB no era realmente fácil de usar, pero últimamente decidí usar IB cada vez más, ya que es mejor para diseñar la interfaz de usuario y funciona bien para aplicaciones estándar. elementos.

Con el nuevo Xcode, cambié a Storyboard, ya que proporcionan una vista completa de la aplicación. Es posible generar la interfaz de usuario completa (con todas las vistas) en un solo file, que puede usarse para crear prototypes y que puedo ver a mis colegas antes de escribir la primera línea de código. Es mucho mejor y más fácil que diseñar con Photoshop o herramientas similares.

Sin embargo, si utiliza muchos de sus propios elementos / controles de interfaz de usuario o algo que use un "motor" diferente (cocos2d, OpenGL, etc.), generalmente es mejor generar la interfaz de usuario mediante progtwigción, ya que estos "motores" no están realmente integrados con IB / Storyboards.

He aprendido el storyboard siguiendo los tutoriales del website de raywenderlich y hay muchas cosas sobre el storyboard.

Aquí está el enlace al sitio: http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

Ventajas del storyboard:

1) Antes de comenzar a desarrollar la aplicación, puede ver todas las pantallas de la aplicación.

2) Puede ver visualmente la relación entre cada pantalla.

3) Puede ayudar a networkingucir la cantidad del código, especialmente en el caso de UITableView, puede usar celdas prototipo y celdas estáticas para diseñar su TableView en el guión gráfico.

4) En caso de que, si tiene que trabajar en otro código, puede get una mejor comprensión del flujo de la aplicación al visualizar storyboard en poco time.

5) Puede configurar la interfaz de usuario para iPhone 4 y iPhone 5 aplicando el factor de forma retina desde el guión gráfico, sin ejecutar la aplicación una y otra vez.

6) Si está haciendo un trabajo basado en el cliente, algunos clientes desean ver el prototipo de la aplicación antes de comenzar a desarrollarlo, aquí el storyboard lo ayuda mucho.

Desventajas del storyboard:

1) Para storyboard necesitará una pantalla grande especialmente en caso de iPad.

2) También experimento una dificultad al copyr vistas desde otras aplicaciones al guión gráfico.

3) También experimento problemas en el guión gráfico cuando varios desarrolladores trabajan en el mismo proyecto mediante el uso de repository git.

Al leer y comprender las ventajas y desventajas, puede juzgarse a sí mismo cuando utiliza storyboard.

Una palabra ( NO ) Una de las mayores desventajas del storyboard aparte de los conflictos de git que hacen imposible que dos o más personas trabajen en ella. pero también si el proyecto fue tan grande y tienes +40 pantallas, si estás lo suficientemente loco como para mover cualquier cosa, solo un píxel en cualquier controller de vista que tengas en el guión gráfico, tendrás un time de compilation muy grande, que puedes build tu aplicación y hacer que se ejecute en más de 5 minutos, y, por supuesto, no me deja comenzar con el file para dar un adoc de la aplicación.

después de esta dolorosa experiencia, totalmente caí de nuevo en los grandes files xib goldy y eliminé el file del guión gráfico en una gran celebración de fuego.