Utilisation de constante globale en Swift

Si vous utilisez Swift vous êtes certainement familier avec les constantes. Vous savez les variables que l’on définit avec le mot clé let ? Aujourd’hui nous allons voir comment les constantes ainsi que les types imbriqués utiliser à bon escient peuvent simplifier l’organisation et la lecture de notre code.

Les bonnes pratiques

Il fait partie des bonnes pratiques d’utiliser des constantes plutôt que des variables car elles permettent des améliorations de performance par le compilateur et surtout parce que cela nous force à réfléchir sur l’utilisation de variable ou de constante.

Mais les avantages des constantes ne s’arrêtent pas là. Elles permettent aussi d’écrire du code plus propre et mieux organisé. Par example il est plus judicieux d’utiliser des constantes pour définir les couleurs de nos interfaces. Par example pour changer la couleur du fond d’une vue :

let backgroundColor = UIColor(hex: 0x3498db)

view.backgroundColor     = backgroundColor
monLabel.backgroundColor = backgroundColor

De cette manière si l’on change la couleur contenue dans backgroundColor, toute notre interface sera modifié. C’est plus simple pour les mises à jours. Veuillez noter que j’utilise cette librairie pour créer des couleurs à partir de chaine en hexadécimal.

Maintenant il y a de grande chance que j’utilise la même couleur de fond sur différente vue. Il serait donc judicieux de mettre ces constantes dans un fichier à part. Donc nous allons créer un fichier qui s’appelle CharteGraphique.swift. Dans ce fichier nous allons créer une structure du même nom qui contient ces constantes statiques afin qu’elles soient globale à tout le projet :

struct CharteGraphique {
  static let backgroundColor = UIColor(hex: 0x3498db)
  static let textColor       = UIColor(hex: 0x000000)
}

Dans d’autres classes on peut ensuite accéder à ces valeurs de cette manière :

view.backgroundColor = CharteGraphique.backgroundColor

Ceci est bien beau, mais si l’on commence à avoir beaucoup de couleur, et que l’on rajoute des icones par example, ca va devenir un peu compliquer de s’y retrouver. Mais heureusement on peut imbriquer les structures et donc arriver à quelque chose de beaucoup plus structurer :

struct CharteGraphique {
  struct Colors {
    struct Main {
      static let backgroundColor = UIColor(hex: 0x3498db)
      static let textColor       = UIColor(hex: 0x000000)
    }

    struct Navigation {
      static let tintColor = UIColor(hex: 0xe67e22)
    }

    struct TableView {
      static let backgroundColor = UIColor(hex: 0xe85647)
      static let textColor       = UIColor(hex: 0x000000)
    }
  }

  struct Icons {
    // ...
  }
}

Maintenant il ne nous reste plus qu’à utiliser ces constantes de manière très élégante :

view.backgroundColor = CharteGraphique.Colors.Main.backgroundColor

cell.backgroundColor = CharteGraphique.Colors.TableView.backgroundColor

C’est tout pour aujourd’hui, j’espère que ces astuces vous serons utile.

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (4 votes, average: 5,00 out of 5)
Loading...

Aucun commentaire

Time limit is exhausted. Please reload CAPTCHA.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.