¿Cuál es la diferencia entre xib y storyboard? ¿Cuál es mejor y por qué?

Storyboard: Storyboards se introducen en iOS 5. Cuando usamos storyboards, nuestro objetivo de implementación debe ser 5.0 o superior. Con la ayuda de storyboards podemos crear todas las pantallas de una aplicación e interconectar la pantalla bajo una interfaz MainStoryboard.storyboard. Con los guiones gráficos podemos usar segues para empujar / presentar controladores de vista, reduciendo así el código necesario para empujar / presentar.

xib: Xib significa constructor de interfaz xml . Los Xib son la forma más antigua de realizar el diseño de la interfaz iOS. Con xib se puede diseñar cualquier vista arbitraria / personalizada, que un desarrollador puede adjuntar a un controlador de vista según sea necesario. Si aplicamos un enfoque orientado a objetos para nuestras IU, entonces tiene sentido usar xib y dividir la vista del controlador de vista en módulos separados.

Ahora, ¿cuál es mejor?

Dado que los xibs son viejos, eso no significa que estén desactualizados, desaprobados o sean inferiores a los guiones gráficos. Ambos son buenos a su manera. En algunos casos, es mejor usar guiones gráficos y en algunos casos se prefieren xibs.

Se prefieren los guiones gráficos cuando:

  • Estamos teniendo vistas con contenido dinámico, donde el diseño cambia significativamente dependiendo del contenido.
  • Tenemos vistas que no se pueden designar fácilmente en el generador de interfaces.
  • Estamos teniendo controladores de vista con transiciones complicadas.

Se prefieren xibs cuando:

  • Queremos crear plantillas de vista reutilizables.
  • Queremos crear plantillas de celdas de tabla reutilizables.
  • Creación de ventanas emergentes, vistas modales.

En iOS, un xib generalmente representará una pantalla llena de información (aunque esta no es una regla rápida y difícil), mientras que Storyboard representará muchas pantallas y, a menudo, la aplicación completa.

Los guiones gráficos son adecuados para aplicaciones basadas en navegación que se mueven entre diferentes vistas, ya que facilitan la configuración de las transiciones hacia y desde las diferentes escenas: es fácil con un guión gráfico que una selección de tabla lo lleve a otro controlador de vista, mientras que con las puntas tendrías que manejar eso en código con tableView: didSelectRowAtIndexPath :. Los guiones gráficos también facilitan el trabajo con celdas de vista de tabla personalizadas y la configuración de tablas estáticas (tablas que parecen conjuntos de botones que no cambian, como la aplicación Configuración).

Los guiones gráficos simplemente mueven algunos problemas: la lógica personalizada para configurar un controlador de vista entrante, algo que se solía hacer en la lógica de selección de filas o pulsación de botones ahora debe suceder en prepareForSegue :. Los guiones gráficos también tienen un concepto claro de “desconectar segues” que las personas tienen dificultades para entender al principio; Echa un vistazo a iBook Storyboards iBook de Daniel Steinberg en iTunes para una cobertura sólida del tema, y ​​la mayoría de las cosas relacionadas con el storyboard.

Algunos desarrolladores se han quejado de los problemas de control de versiones cuando varios desarrolladores editan un guión gráfico al mismo tiempo, aunque el guión gráfico en realidad está compuesto por múltiples archivos .xib y yo personalmente nunca he experimentado una fusión incorrecta del guión gráfico.

Los guiones gráficos ni siquiera existen en OS X (donde las aplicaciones suelen estar más basadas en ventanas que en nagivation), por lo que .xibs es la única opción sensata (si estás loco, puedes construir tu UI en código), y Sospecho que .xibs continuará dando vueltas en Xcode por un tiempo.

En el nivel más alto, los xibs son para crear la interfaz de usuario para 1 vista (aunque puede definir más allí). Los guiones gráficos son para crear la interfaz de usuario para toda la aplicación y definir cómo el usuario puede atravesar entre diferentes pantallas (cómo se dividen en diferentes escenas, en el lenguaje del guión gráfico).

Hay muchos detalles: en general, los Storyboards obtienen todas las características nuevas y geniales, mientras que los xib se han dejado en el frío. Si bien ambos tienen soporte para AutoLayout, mi presentimiento es que eso es solo porque el Diseño automático también está disponible en OS X, y Xcode no tiene guiones gráficos para mac. Puede hacer cosas como conectar reconocedores de gestos en un guión gráfico o crear vistas de tabla estáticas, y no puede hacerlo en una punta.

Una cosa que no puede hacer en un guión gráfico es crear vistas que no sean visibles de inmediato. Por ejemplo, supongamos que tiene un botón en una pantalla y, cuando el usuario lo toca, se crea una nueva vista y se agrega a la jerarquía. No hay forma de definir eso en el guión gráfico que no sea tenerlo como una subvista al comienzo y ocultarlo, lo cual es muy burdo. Afortunadamente, puede mezclar plumillas y guiones gráficos, y configurar la compleja vista externa y cargarla en el código.

Mi consejo es: use guiones gráficos, son geniales. Tienen muchas características interesantes, incluidas algunas que ni siquiera he mencionado aún, como desconectar e incrustar segmentos. Es claramente lo que Apple ve como el futuro. Use plumillas (o escriba código) si tiene sentido de otra manera.

Diferencia entre XIB y Storyboard:

Storyboard:

1. En palabras simples, Storyboard es un archivo único para todas las vistas o pantallas que aparecen en sus aplicaciones.

3. Transita una pantalla a otra pantalla.

3. Minimiza (reduce) la cantidad de archivos en sus aplicaciones.

4. Storyboard puede poner los archivos XIB.

XIB:

1. XIB es el creador de interfaces Mac OS x. Permite Cocoa Touch y Carbon Touch.
2. En XIB, el resultado se almacena como un archivo NIB.
3. Es la parte del código X.
4. En XIB no hay flujo de control y transición entre la vista y el controlador.

Los guiones gráficos están disponibles para iOS 5 y superior, por lo que si desea enviar una aplicación compatible para versiones anteriores a iOS 5, no puede hacerlo principalmente porque tiene que establecer su objetivo y eso generará muchos errores debido a los guiones gráficos.
La tienda de aplicaciones definitivamente no rechazará su aplicación porque está usando guiones gráficos, en realidad los chicos de Apple recomiendan usar guiones gráficos.
Uso de guiones gráficos o archivos xib según el proyecto. Con los guiones gráficos, el usuario no tiene que escribir el código para los controladores de vista push / pop / present. los guiones gráficos son más limpios y pueden presentar el flujo principal de la aplicación, lo que facilita la depuración.

Ambos son importantes a su manera. Los archivos xib se pueden incluir en varias escenas en el guión gráfico pero no se puede incluir un guión gráfico en xib u otro guión gráfico.

More Interesting

¿Cuál es la fracción promedio de usuarios que realizan una compra en la aplicación?

¿Cuáles son las fortalezas, debilidades y capacidades únicas de cada una de las plataformas de Apple?

¿Puedo practicar la programación de iOS en una Mac sin un certificado de aprovisionamiento?

¿Qué idiomas necesito saber para crear solo una aplicación (no un sitio web) como Quora o Facebook (para iOS) y por qué?

¿Cuál es el caso para notificaciones push / locales?

¿Qué otros lenguajes de programación, además de Swift, debería conocer un desarrollador de iOS de pila completa?

¿Cuál es la mejor manera de probar un juego de Unity en iOS? ¿Necesita simplemente construirlo a través de xCode o hay una forma más simple de probar?

¿Es posible que un principiante absoluto cree una aplicación para iPhone todos los días durante 30 días seguidos? (suponiendo que las aplicaciones tengan una funcionalidad simple)

¿Cómo hago una aplicación para Android / iOS?

¿Qué tan difícil es hacer un juego como Audiosurf, pero para iOS?

¿Cuál es la mejor manera de manejar el desuso de API? Hay alguna manera de evitar esto?

¿Cómo se despacha el trabajo en un equipo de desarrollo de aplicaciones iOS?

¿La política de la tienda de aplicaciones de Apple tiene una posición clara (aceptar o rechazar) sobre el desbloqueo de funcionalidades adicionales en una aplicación mediante el escaneo del código QR?

¿Cuáles son los requisitos previos para aprender a desarrollar aplicaciones para dispositivos Android e iOS?

¿Será iAd un negocio de $ 2.5 mil millones para Apple?