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)
.