2012-07-12 9 views
6

Los guiones gráficos parecen ser una forma elegante de tratar con múltiples controladores de visualización en iOS y las transiciones entre ellos.iOS Storyboarding: experiencia práctica para varios desarrolladores.

Sin embargo, he evitado usarlos hasta ahora, por la preocupación sobre lo que sucede cuando varios desarrolladores realizan cambios para ver los controladores en el mismo archivo del guión gráfico y los posibles conflictos resultantes .

¿Alguien ha tenido mucha experiencia práctica con esto, en aplicaciones de producción de complejidad moderada?

¿Cuál es su opinión? ¿Está listo el guion gráfico para el "horario de máxima audiencia" a este respecto? ¿O es más adecuado para desarrolladores individuales o pequeños equipos de desarrollo?

(Y ¿qué hay de soluciones alternativas, tales como 'sharding' en varios archivos de guión gráfico?)

opiniones?

¡Gracias!

Respuesta

9

poco de antecedentes:

Mi equipo de cinco personas, cuatro desarrolladores y control de calidad, acaba de terminar un proyecto bastante grande (50k + líneas de código) que utiliza cantidades significativas de Storyboard. Tenemos al menos 10 guiones gráficos diferentes, muchos de los cuales tienen una profundidad de 5 o 6 niveles en una estructura de navegación.

Además, dependemos en gran medida del control de versiones a través de Perforce, con docenas de check-ins al día.

Mis Experiencias:

Ni una sola vez he tenido que pensar en el manejo de una determinación con cualquiera de nuestros guiones gráficos. Se manejan extremadamente bien con el control de versiones por dos razones principales. En primer lugar, si abre uno, verá que es un XML bien estructurado que funciona muy bien con el control de versiones. En segundo lugar, con los guiones gráficos siempre desea diseñar su estructura de interfaz de usuario completa antes de agregar cualquier detalle o código (ese es el punto). Esto se presta muy bien a una solución de codificación de equipo, simplemente porque cada miembro puede tomar un ViewController individual e implementarlo, permaneciendo aislado del resto de los esfuerzos del equipo.

Sin embargo, recomendaría hacer algunos 'sharding' porque fácilmente puede obtener un nido de conexiones de ratas gigantes.

Por último:

Si se mira alrededor en línea un poco, encontrará muchas respuestas negativas a la creación de guiones gráficos, ya que puede conseguir 'sucio' para pasar los datos a lo largo de una vista a otra. Sin embargo, si te metes en esta situación, ya has violado los principios básicos de MVC. No debe usar sus vistas para almacenar y administrar datos. Es tentador y fácil al principio, pero finalmente te meterá en problemas a medida que tu proyecto vaya más allá de lo básico.

+0

Excelente respuesta, SethHB - muchas gracias! ... (¿A alguien más le importa compartir sus experiencias con Storyboarding?) – rondoagogo

+0

@SethHB: Buen consejo, gracias por compartir. Pequeña pregunta: ¿qué quieres decir con 'sharding'? –

+1

@rsanchezsaez Sharding fue en referencia a la pregunta original. Básicamente, significa dividir su proyecto en subconjuntos de Storyboards. Cuantos más Storyboards tengas, más fácil será gestionarlos; pero con cada panel agregado, la complejidad del proyecto aumenta. Es una compensación, y tendrás que encontrar tu propio equilibrio. – SethHB

4

Los conflictos de combinación siguen siendo un gran problema que Apple aún no ha resuelto (incluido en Xcode 4.6). A veces, simplemente ver el contenido del guión gráfico hace que se modifique. Las modificaciones parecen ser un funcionamiento interno de plumillas inofensivo, pero si 2 personas ven un guión gráfico sin realizar modificaciones, guardan el archivo y luego se comprometen, es posible que vean conflictos que no comprenden cómo fusionarlos.Archivé un error en esto hace un tiempo y está marcado como un duplicado de un problema conocido.

Véase también estas preguntas las que se apoyan:

Storyboards and SVN conflicts

http://robsprogramknowledge.blogspot.com/2012/01/uistoryboard-best-practices.html

Xcode changes unmodified storyboard and XIB files

Cuestiones relacionadas