TechTalk#6 – Swifty Enums

 

TechTalk #6

Swifty Enums

 

Lesenums Swiftne sont pas des enums Java. Elles s’apparentent plutôt aux unions C. C’est une composition de type exprimant un OR entre types, le type Swift struct exprimant lui un AND entre types. Par exemple, une enum est utile dans la gestion du retour d’une requête réseau: soit c’est un succès et celui-ci s’accompagne d’un type Data, soit c’est un échec et ce retour s’accompagne d’un type Error.

Une enumpeut représenter un résultat de serveur mais dans ce cas il ne faut pas oublier de gérer le cas « Other » (exemple : image par défaut), pour le cas où le serveur ajouterait un nouveau type : l’application ne doit pas crasher et doit gérer ce type inconnu pour elle. Une future mise à jour de l’application pourra prendre en compte ce nouveau type.

Par ailleurs, il est intéressant de définir le mapping case<=> rawValue en dehors de la définition de l’enum car le développeur qui utilise l’enum n’a pas besoin de savoir comment est fait le mapping. Il utilise simplement l’enum.

Les case enums ne doivent pas être utilisées pour définir des jeux de constantes. Les structs avec un constructeur privé et des « static let » constantes sont plus appropriées pour cela.

Pensez à utiliser les extensions sur les enums pour « ajouter » des éléments UI qui seront fonctions des case de l’enum. Exemple : une image différente en fonction du cas.

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