2011-09-17 10 views
6

Combinar archivos de constructor de interfaz con otros (e incluso yo mismo desde una computadora diferente) puede ser un verdadero desafío. El xml de XIB es ciertamente mejor que los NIB, pero incluso como xml, he encontrado casos en los que fusionar y obtener un XIB coherente y válido era más difícil que tomar el otro y rehacer manualmente los cambios realizados.Interface Builder (XIB) o Código cuando se fusiona en un entorno de equipo?

Me pregunto qué están haciendo otras personas que tienen varias personas que pueden colisionar con XIB.

¿Está fusionando una consideración para ir todo el código? ¿Utiliza XIB solo para el diseño y codifica el resto? O bien, ¿ha tenido algo de suerte fusionando XIB y con el tiempo simplemente mejora en la lectura manual?

EDITAR: Mi enfoque actual es usarlo para un diseño estricto (lo que es realmente bueno y doloroso de codificar) y configurar todas las opciones y los datos a través del código. Encuentro que el código es mucho más fácil de combinar, pero establecer controles en el código es tedioso. ¿Pensamientos?

Respuesta

2

estaba fusionando una consideración para ir todo el código?

Sí, No, y "Porciones de". Depende de cosas como:

  • Las personas involucradas
  • la complejidad de la interfaz de usuario
  • la calidad de la aplicación que necesita.
  • la vida útil esperada de la aplicación

Pero sí, lo ha sido, y es a menudo el caso cuando simplemente no es trivial - De lo contrario, sólo lo lucha por la descomposición de XIBs en trozos más pequeños. Eso puede funcionar bastante bien (o no), dependiendo de a qué se enfrente.

¿Utiliza XIB para el diseño y codifica el resto?

Depende de muchas cosas.

  • XIB-only tiene sus restricciones, y se parece mucho a la duplicación de código.Lo uso a veces para prototipos, otras veces porque eso es lo que alguien más favoreció.
  • "Un poco de ambos" puede requerir una gran cantidad de pegamento. En ocasiones, puede ser bastante desorganizado, p. "¿dónde está esa acción realmente conjunto?". Por supuesto, esto también se puede usar para lograr lo que algunos considerarían un buen equilibrio de XIB y separación programática. Cuanto más simple es el XIB, con menor frecuencia será necesario ajustarlo, y es menos probable que cause conflictos de fusión.
  • El código solo es mi preferencia, pero hay personas que prefieren WYSIWYG, y las personas no están muy familiarizadas escribiendo IU mediante programación. Además, si la calidad, la reutilización y la capacidad de mantenimiento no son requisitos (por ejemplo, destruir un prototipo), entonces el código solo puede ser excesivo.

O, ¿ha tenido un poco de suerte XIBs la fusión y con el tiempo que acaba de obtener mejores para leer de forma manual?

No hubo mucha suerte, simplemente dividiéndolos en componentes más pequeños. Desafortunadamente, la opción "Descomponer interfaz" (de IB3) no está disponible en el editor de Xc4.

+0

Gracias - buenos comentarios. – bryanmac

1

He encontrado que IB es mejor para el diseño como usted menciona, pero probablemente sea solo yo porque me crié de esta manera. El código más útil es mucho más reutilizable que los diseños.

En lo que a mí respecta, durante el tiempo de ejecución ambos actúan igual aunque no estoy 100% seguro de eso. Los prototipos son menos dolorosos en IB que en el código, lo sé con certeza y los clientes no tomarán ningún valor en su creación de prototipos en el código.

+0

concordamos en que el código sea más reutilizable y también estamos de acuerdo en que el diseño sea mejor en IB. Ese es mi enfoque actual (diseño estricto en IB y configuración de los controles en el código que puedo guardar, copiar pegar y diff fácilmente). Si tengo que volver a hacer el diseño en un caso de fusión incorrecto, es rápido porque es un diseño estricto y una nueva vinculación. Esperando escuchar de otros ... – bryanmac

+0

Tomando esto como la respuesta porque es básicamente la conclusión a la que llegué y no he escuchado otras propuestas para una fácil fusión. El código es más reutilizable (cortar y pegar) y el diseño estricto es más fácil en el generador de interfaz. – bryanmac

+0

¡De acuerdo en ese amigo! –

0

Lo que hago es no molestarme en intentar fusionarme, solo acepta la versión de la rama por completo o su versión. Significa que tienes que ser un poco disciplinado sobre quién cambiará el código de la interfaz, y sobre las confirmaciones y actualizaciones; en la práctica, no hemos encontrado un problema, pero supongo que depende de tu entorno. No use esto como una excusa para dejar de usar el constructor de interfaz, no hay nada peor que intentar buscar en el código de otra persona para encontrar un botón para que pueda determinar qué ocurre cuando un uso hace clic en él. Sin Interface Builder no respeta la separación MVC.

+1

MVC no dicta el Creador de interfaces. He codificado patrones MVC en múltiples idiomas en múltiples plataformas. Algunos con diseñadores, otros sin. MVC dictamina que su vista es independiente de su controlador. Es posible tener una clase de vista, una clase de controlador y una clase de modelo sin xib y respeto a MVC. MVC vuelve a Xerox Parc en 1978/1979 y estoy seguro de que el creador de interfaces no existía :) http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html – bryanmac

+0

Tienes razón, solo estoy hablando más de la experiencia con la aplicación iOS que no usó el constructor de interfaz. Tienden a tener todo el código de vista de construcción atorado en los controladores de vista. –

Cuestiones relacionadas