Quelle est la principale différence entre le .xib et le storyboard dans ios ?


Les deux ont leurs propres avantages et inconvénients.

Utiliser les XIB


Avantages:

-Vous pouvez rapidement mettre en place une interface utilisateur

-Mise en œuvre directe pour les petites applications avec un nombre minimal d'écrans

-Vous pouvez avoir des XIB distincts pour les différentes localisations (c'est-à-dire les langues ou les pays)

-Génial pour disposer les éléments et repérer visuellement les désalignements. Il est facile d'apporter un léger ajustement à la mise en page

Inconvénients :

-Il est difficile de fusionner les conflits lorsqu'on travaille en équipe (difficile de différer, de fusionner et de lire)

-Les vues très dynamiques sont impossibles à décrire comme un XIB

-Performances, c'est plus lent que de créer des vues par le biais du code parce que le XIB doit être lu sur le disque et analysé/parsé

-Les XIB manquent de personnalisations que vous pouvez faire dans le code comme les trucs de Quartz (ombres portées, coins arrondis)

-Plus difficile à déboguer (ie. si vous oubliez de faire une connexion dans Interface Builder ou faites une mauvaise connexion)

Storyboards

Avantages:

- Les storyboards sont agréables pour les apps avec une quantité petite à moyenne d'écrans et les exigences de navigation sont relativement simples entre les vues

- Vous pouvez maquetter le flux d'une application sans écrire beaucoup, voire pas du tout, de code

- Crée des séquences entre les contrôleurs de vue et les faire naviguer.

- Vous pouvez créer le flux de navigation complet sans écrire la moindre ligne de code

Inconvénients :

- Les Storyboards ne sont pas compatibles avec les systèmes pré-iOS 5, ce qui rend la prise en charge d'iOS 4.3 impossible

- Il est difficile de travailler en parallèle dans un environnement d'équipe car tout le monde modifie le même fichier

- Dans le même ordre d'idées, la fusion de storyboards conflictuels dans GIT sera une douleur

- Les gens ont connu des bugs dans XCode avec l'utilisation de storyboards (par exemple, avoir à vider fréquemment le dossier DerivedData en raison d'incohérences)

.