TechTalk#10 – iOS TableView vs StackView vs CollectionView vs ManualLayout

 

TechTalk #10

iOS TableView vs StackView vs CollectionView vs ManualLayout

 

Il existeplusieurs outils disponiblespar UIKit pour façonner le GUI. Chacun de ces outils à des avantages et inconvénients. Un mauvais choix au début de l’implémentation peut rendre difficile l’ajout de nouvelles features. Dans certains cas il n’y a pas d’autres choix que de recommencer.

Pour vous aider dans le choix initial nous allons dans un premier temps passer en revue chacun des outils et ensuite vous expliquer comment faire votre choix.

Table View

Le UITableViewest une valeur sûr qui existe depuis longtemps dans iOS. Sa performance n’est plus à prouver, le frame rate est le plus élevé par rapport à ses concurrents. Son utilisation est assez simple et il permet facilement d’avoir une page fonctionnelle. La gestion du clavier est un plus pour la réalisation d’un formulaire. La bonne pratique étant d’utiliser les static cells pour chacun des champs. Mais le layout ne peut être aussi flexible que certaines autres propositions.

Stack View

Depuis iOS 9, un petit nouveau à fait son apparition, le Stack View. Celui-ci est assez proche du LinearLayout sur Android. Il permet de rassembler plusieurs views alignées horizontalement ou verticalement. Avec un jeu de contraint simple, cela permet de facilement adapter le contenu. Une librairie (KeyboardAvoidingScrollView) sera nécessaire si vous voulez utiliser le clavier avec un Stack View.

Collection View

La Collection Viewest le petit frère du Table View, cela veut dire que vous pouvez pratiquement faire la même chose qu’avec une Table View. Mais cela ne veut pas dire que vous devez le faire. La puissance de la Collection View réside dans l’abstraction de la gestion d’une collection d’object. Il est ainsi facilement possible de changer la position et le comportement de chacune des cellules. De plus, avec un peu de code supplémentaire, vous pouvez animer celles-ci.

Manual Layout

Pour les applications qui doivent être compatible avec iOS 8 et versions inférieur, il y a une solution pour avoir une gestion similaire à une Stack View, c’est le Manual Layout. Le problème de cette solution, c’est le prix de la maintenance. Il est effectivement difficile de modifier un layout existant. Mais si la librairie PureLayout permet de simplifier la verbosité du code, cela ne le rend pas plus facile à le modifier.

Maintenant que nous avons fait un tour d’horizon des différentes solutions. Nous vous avons réalisé un schéma qui vous aidera dans votre prise de décision.

ripplemotion-agence-digitale-techtalk10

TechTalk animé par Olivier Tabone | Co-fondateur Directeur Technique chez Ripple Motion