FrenchKit 2019

Thomas Lanquetin
STEAMULO Blog
Published in
6 min readNov 27, 2019

--

Cette année, au Beffroi de MontRouge se tenait la quatrième édition de la FrenchKit conférence focalisée sur le développement iOS. Comme chaque année des intervenants du monde entier sont venus pour partager avec nous leur connaissance sur leurs sujets de prédilection. Néanmoins cette année l’ensemble des talks était surtout focalisé sur un point : Swift UI, le nouvel outil que Apple fourni aux développeurs pour développer des interface graphiques.

Je vais faire un retour sur les talks qui m’ont semblé le plus intéressant. Pour le reste, les replays sont disponibles sur YouTube :

Animations with SwiftUI — Chris Eidhof

La matinée a été lancée avec la conférence de Chris traitant du sujet des animations avec Swift UI. Les animations sont utilisées depuis toujours sur iOS, mais avec l’arrivée de Swift UI l’intégration ne se fait plus de la même façon.

En partant d’un cas simple, à un cas plus avancé, il nous a montré comment animer nos composants Swift UI de manière simple.

Dans son premier exemple, nous avons eu une démonstration des animations embarquées de Swift UI, en une seule instruction le déplacement d’une vue ainsi que son changement de taille a été animé.

Le morceau code ci-dessus représente une simple vue contenant un rectangle ainsi qu’un bouton, lors du clic sur le bouton le rectangle est redimensionné et change de couleur.

L’animation du changement du rectangle est déclarée à la ligne 11, pour cet exemple le type default a été utilisé mais il existe aussi d’autres types intégrés fournis par le SDK. Il est également possible de paramétrer ces animations en précisant, par exemple, leur vitesse, nombre de répétition …

Dans un second exemple, Chris nous a présenté un cas légèrement plus complexe. Il souhaitait obtenir un effet d’oscillation lors de la sélection du bouton. Ce type d’animation n’étant pas embarqué de base, il a fallu créer une animation customisée pour répondre à cette problématique. Pour cela un modifier customisé a été codé, un modifier est une classe dont le rôle est de transformer une vue. Il en existe plusieurs sortes mais pour l’exemple donné il s’agissait d’un type GeometryEffect, celui-ci répondant à notre besoin de juste transformer la vue.

Ensuite il ne reste plus qu’à intégrer notre nouveau modifier, comme cela est fait sur l’exemple suivant à la ligne 26.

Les animations étant très appréciées sur les applications iOS pour rendre les interfaces plus vivantes, celles-ci devaient être évidemment disponibles avec Swift UI.

Totalement intégrées aux composant Swift UI, on a pu voir à quel point il était simple et rapide de pouvoir mettre en place des animations.

Testing and Declarative UI’s — Nataliya Patsovska

Dans sa présentation, Nataliya nous a parlé de ses techniques pour bien tester ses applications. Après nous avoir rappelé les principes de bases, notamment celui de rendre indépendant sa logique métier de ses vues pour pouvoir la tester en isolation, elle nous a expliqué sa stratégie pour tester ses vues.

Les outils proposés par Apple étant relativement limités pour tout ce qui est tests d’interface, un retour d’expérience sur cette partie est toujours bon à prendre.

Pour tester ses vues, elle s’est basée sur une technique nommée le SnapShot testing, elle fonctionne de la manière suivante :

  • Lors de la première exécution du test d’interface une capture de la vue est prise et enregistrée pour servir ensuite d’image référentielle
  • Lors des autres exécutions du test une comparaison sera effectuée avec le référentiel et en cas de différence une erreur sera remontée

Cette technique est très intéressante car elle permet de tester des vues indépendamment de leur complexité. Même sur une vue très dense en information, le travail de mise en place sera le même que pour une simple vue, tout le travail étant fait par la comparaison d’images et non pas par le développeur. Ce point est relativement important, le temps de maintenance des tests d’interface pouvant être très coûteux.

Swift Pills :

Les Swift Pills ont été des talks très brefs, animés par Vincent Pradeilles. L’objectif de ces talks étaient de nous partager de petites astuces concernant le langage Swift pour nous faciliter la vie.

Weakify

Bien souvent, lors de l’utilisation d’une closure nous avons besoin de passer par le mécanisme du weak self pour ne pas avoir de retain cycle.

Ce mécanisme se met en place de la sorte :

Bien que cette approche ne soit pas complexe à mettre en place. Elle a le défaut d’être rébarbative et donne l’impression d’avoir à ajouter du code boilerplate. C’est là qu’intervient Weakify : c’est une fonction qui encapsule ce mécanisme. Ainsi, grâce à cette extension notre exemple précédent se transforme en :

Optionals

Dans cet autre talk Vincent nous a partagé ses tips pour manipuler les optionals de manière plus efficace.

Le deuxième tips concerne l’utilisation des optionals pour les strings. Lorsqu’on manipule des objets qui peuvent contenir des strings optionals nous devons souvent utiliser le pattern suivant :

Bien que ce morceau de code soit totalement valide il est possible de le rendre plus clair en étendant le type optional. En ajoutant une extension à ce type, on peut directement avoir une méthode qui va se charger de retourner la valeur si elle existe ou une chaîne vide dans le cas échéant. Ainsi notre morceau de code précédent devient :

Conclusion

Après une WWDC riche en nouveauté avec notamment l’annonce de Swift UI, j’ai été heureux de participer à la French Kit pour pouvoir en apprendre plus sur le sujet.

L’utilisation de Swift UI sur nos applications va s’accompagner de changements radicaux tant la manière de faire est différente de celle actuelle. C’est un peu le ressenti que j’ai eu à cette conférence en voyant autant de sujets traitant de Swift UI sur des aspects pourtant bien différents que ce soit les animations, les tests, l’architecture …

Swift UI n’est malheureusement disponible que sur la dernière version d’iOS et ne peut donc pas être utilisé en production. Nos clients voulant généralement assurer la comptabilité sur deux ou trois versions du système. Ainsi ce genre de conférence est le bon moment pour se tenir à jour et être prêt à franchir le cap une fois que la migration vers Swift UI sera possible.

Rédigé par Sébastien et Thomas

--

--