2017-02-22 2 views
1

J'utilise actuellement l'architecture CLEAN Swift iOS pour une application iOS relativement grande (http://clean-swift.com), basée sur l'architecture propre d'Uncle Bob. Il réduit vraiment la taille des contrôleurs de vue mais il y a beaucoup de fichiers pour chaque scène (ou écran). Un écran typique aura des fichiers tels que: ViewController, Presenter, Interactor, Router, Configurateur. Nous utilisons également un storyboard séparé par contrôleur de vue - chaque storyboard n'a qu'un contrôleur de vue. Il existe également de nombreux fichiers de travail qui effectuent divers appels API. Le temps de compilation de Swift est assez lent, mais dans ma mémoire je suis presque sûr qu'il l'a toujours été (même avant que nous ne changions notre architecture de MVC en CLEAN). Cependant, certains collègues commencent à se demander si cette architecture est à l'origine des temps de compilation lents. Ma question est, est-ce que l'utilisation de plusieurs fichiers augmente le temps de compilation? Est-ce que MVC compilerait plus vite? Aussi, qu'en est-il des storyboards? Est-ce une mauvaise pratique d'utiliser un contrôleur par vue?Est-ce que d'autres fichiers augmentent le temps de compilation dans Swift?

+1

Eh bien, je dirai oui plus de fichier prendra plus de temps pour compiler.En ce qui concerne MVC c'est juste la séparation des affaires de la présentation et de rendre l'apparence de votre code mieux.Mais cela va encore vous obliger à créer plus de modèle Les classes seront donc encore plus de fichiers seront créés. Et vous pouvez utiliser plusieurs vues sur un contrôleur de vue au lieu d'en créer un pour chaque. –

Répondre

0

La réponse courte est oui. Plus de fichiers augmentent le temps de compilation, certains plus que d'autres.
Une façon de réduire le temps de compilation consiste à supprimer les storyboards, puis à faire l'interface utilisateur dans le code, ou à rendre vos storyboards aussi réutilisables que possible. Dans mon expérience, l'architecture propre fonctionne mieux avec une base de code tout code, car vous réduisez le nombre de fichiers de vue, si c'est fait correctement. Bien qu'une autre question que vous devriez vous poser, est le temps de compilation légèrement augmenté, plus bénéfique en termes d'avoir un code plus lisible, maintenable et testable, plutôt que de jouer avec les contrôleurs toujours croissants du MVC? Et MVC ne pourrait même pas diminuer votre temps de compilation, car vous pourriez finir par avoir des storyboards plus grands (dans la plupart des cas). Et pour la dernière question. Oui, un storyboard par contrôleur peut être considéré comme une mauvaise pratique, mais seulement si ces storyboards ne sont pas réutilisables.