2012-09-28 20 views
12

Usar guiones gráficos en lugar de la estrategia .xib tradicional es algo con lo que todavía estoy luchando, ya que hay algunas dudas sobre la adopción de algo que hace tantas cosas ocultas sin entender realmente lo que está haciendo, y qué control ' estoy realmente perdiendo¿Siguen siendo estos elementos negativos válidos contra el uso de Storyboards en el desarrollo de aplicaciones iOS 6?

El libro de programación de BNR iOS resalta varias "desventajas" para usar Storyboards. Los he enumerado a continuación, y mi pregunta es: ¿Estos negativos siguen siendo válidos con iOS 6?

  1. guiones gráficos son difíciles de trabajar en un equipo
  2. guiones gráficos meter la pata de control de versiones
  3. guiones gráficos interrumpir el flujo de la programación
  4. guiones gráficos sacrificar flexibilidad y control para facilitar su uso
  5. guiones gráficos siempre crear nuevas instancias de controlador de vista

Estoy buscando respuestas de chicos que en realidad están construyendo, y de preferencia desplegaron aplicaciones reales de iOS y han tenido problemas con el asunto "storyboards vs .xib".

Gracias

Respuesta

11

No creo que iOS 6 corrige cualquiera de estas situaciones. Más al punto, xcode 4.5 no los arregla o incluso intenta hacerlo. Los problemas enumerados parecen reflejar opiniones o preferencias estilísticas, y quizás alguna información errónea. Estos no son el tipo de cosas que PODRÍAN corregirse en el código.

Estoy utilizando guiones gráficos para una aplicación sustancial y considero que son una gran ayuda para la productividad. Te animo a que intentes ver si no estás de acuerdo.

Un par de comentarios sobre la lista de temas:

  1. No estoy al tanto de cualquier problema con los equipos y SBS, pero si fuera cierto 2 (que no lo es) que explicarían esta preocupación . Creo que esto es un concepto erróneo basado en 2.
  2. No es cierto. Uso a Git religiosamente y me comprometo con frecuencia. No hay problema. Durante las confirmaciones, los SB se muestran en su forma de código fuente (XML). Los diffs funcionan perfectamente y proporcionan una idea de cómo se implementan los SB. Esto reduce la sensación de comportamientos misteriosos "encubiertos", que se convierte en un problema de familiaridad.
  3. No estoy de acuerdo. No interrumpen el flujo, ofrecen un flujo diferente, que es donde obtienen su poder. Muchos programadores encuentran valor en la separación impuesta por la disciplina MVC. Los SB introducen una separación entre la colocación del elemento de UI y el código de soporte. Es una división natural, y elimina una tonelada de código descerebrado (lo que elimina la posibilidad de errores tipográficos, y "despeja" el código REAL que queda).
  4. Parcialmente de acuerdo, definitivamente mejoran la facilidad de uso. Pero no encuentro ningún sacrificio en absoluto. Incluso cuando usa SB, siempre puede volver a codificar manualmente cualquier objeto si lo necesita. No hay sacrificio de flexibilidad o control.
  5. No estoy seguro de lo que esto significa, y por qué podría ser un problema. Por supuesto, creamos diferentes VCs para diferentes escenas, eso es natural. Pero ciertamente es posible reutilizar las clases de VC en SB. Este elemento podría ser una idea errónea sobre cómo configurar la clase para un objeto SB. Es fácil olvidarse de hacer este paso, y a veces desconcierta a los principiantes.Pero es trivial corregirlo, y establecer la clase rápidamente se convierte en un hábito.

Para mí las preocupaciones reales son:

  1. Usando SB exige una gran cantidad de espacio en pantalla para el desarrollo. Usar SB puede ser frustrante en una pantalla pequeña.
  2. Las IU altamente complejas con muchas escenas se deben dividir en varios SB. Múltiples SB son totalmente compatibles, pero es fácil dejar de hacerlo. (Es como refactorización un método que se hace demasiado grande. Por lo general, noto que tengo que refractor código después de algo que ya ha conseguido desordenado.)

La conveniencia de SB durante el diseño y la eliminación de gran parte del código repetitivo que satura objetos VC es un gran beneficio. (Cada línea de código que elimino es una línea que no puedo arruinar, y una línea que no puede oscurecer el código real que queda.)

En resumen, no puedo imaginar volver a la vida sin SBs. Sí, es un cambio. Pero no he encontrado ningún inconveniente serio. Es especialmente importante tener en cuenta que incluso cuando se utilizan SB, todas las técnicas de codificación que no son de SB aún funcionan. Prueba SB's e informa tu propia experiencia. ¡Buena suerte!

+2

Un punto más, hay una charla muy útil en la biblioteca WWDC 2012 sobre cómo agregar objetos SB a proyectos existentes sin convertir todo a SB. Está aquí: https://developer.apple.com/videos/wwdc/2012/?id=407 – jbbenni

7

Generalmente estoy de acuerdo con jbbenni. La única crítica "válida" que veo en sus puntos es que "Storyboards siempre crea una nueva instancia". Básicamente, esto significaba que aunque podía conectar un botón para presionar un controlador de visualización en la pila, no podía conectar un botón para hacer una copia de seguridad de la pila sin código adicional. Esto se resolvió en Xcode 4.5 con "exit segues", que le permite indicar que desea volver a un controlador anterior en lugar de crear una nueva instancia.

La otra limitación de los guiones gráficos de los que muchos se quejaban era que no se podían insertar controladores de vista secundarios en el guión gráfico. Esto también se ha abordado en Xcode 4.5.

Los guiones gráficos son un avance significativo para el desarrollo de iOS. Las quejas como "dificulta la fusión" son infundadas; los guiones gráficos no son más difíciles de combinar que otros códigos; solo tiene que tomarse el tiempo para leer realmente la diferencia en lugar de pasarla por alto como "no Obj-C; no puede leer".

He usado guiones gráficos exitosamente en una configuración de equipo desde su presentación. No dejes que los desinformados te asusten. Son grandiosos.

+0

los guiones gráficos pueden no ser más difíciles de combinar que un xib, pero hay muchas más posibilidades de que necesites fusionar un SB cuando trabajando en equipo – Oren

+0

Usar guiones gráficos MÚLTIPLES para proyectos de tamaño medio puede reducir la complicación de la fusión de códigos, especialmente si las divisiones funcionales del guión gráfico se alinean con las responsabilidades del equipo. (Una desventaja de usar muchos guiones gráficos es que un Segue entre guiones gráficos es menos astuto. Pero ese problema no es común con el diseño limpio, y es factible cuando es necesario). Los guiones gráficos están aquí para quedarse, no son perfectos para cada situación, pero los beneficios superan los costos de codificación en casi todos los casos. – jbbenni

Cuestiones relacionadas