Validation des données en Swift : la bibliothèque Validator

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que la validation de données en Swift et pourquoi en a-t-on besoin ?

La validation de données est le processus de vérification des données d'entrée par rapport à des règles définies. Dans le développement iOS/macOS, elle est cruciale : de la vérification de l'email et du mot de passe dans un formulaire d'inscription à la validation d'une réponse JSON du serveur. Les outils intégrés de Foundation (NSPredicate, expressions régulières) sont souvent lourds et peu pratiques pour une réutilisation. Validator est une bibliothèque légère pour Swift qui permet de décrire de manière déclarative les règles de validation avec une syntaxe chaînée (chainable syntax) et de les utiliser n'importe où dans le projet.

Comment installer la bibliothèque Validator

Validator est disponible via Swift Package Manager (SPM). Ajoutez-la dans Package.swift ou via Xcode : File → Add Packages → entrez l'URL du dépôt :

https://github.com/adamwaite/Validator

Ou via CocoaPods, si vous l'utilisez :

pod 'Validator'

Fonctionnalités principales de la bibliothèque

  • Règles intégrées : email, URL, chaîne, nombre, longueur, expressions régulières et bien d'autres.
  • Règles personnalisées : vous pouvez créer n'importe quelle vérification en implémentant le protocole ValidationRule.
  • Validation de collections : vérification de tableaux, dictionnaires, valeurs optionnelles.
  • Erreurs lisibles par l'humain : retourne des messages d'erreur localisés.
  • Intégration avec UIKit/SwiftUI : possibilité de valider directement les champs de texte.

Exemple de code en Swift

import Validator

// Création des règleslet emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard)let passwordRule = ValidationRuleLength(min: 8, max: 32)

// Validation d'une chaînelet email = "test@example.com"let result = email.validate(rule: emailRule)

switch result {case .valid: print("Email valide")case .invalid(let errors): print("Erreurs : \\(errors)")}

// Validation avec plusieurs règleslet username = "user123"let usernameRules = ValidationRuleSet<String>()usernameRules.add(rule: ValidationRuleLength(min: 3))usernameRules.add(rule: ValidationRulePattern(pattern: "^[a-zA-Z0-9_]+$"))

let usernameResult = username.validate(rules: usernameRules)if case .invalid(let errors) = usernameResult { print("Erreurs de validation du nom d'utilisateur : \\(errors)")}

// Exemple pour UITextField (UIKit)let textField = UITextField()textField.text = "email invalide"textField.validate(rule: emailRule) { result in switch result { case .valid: textField.layer.borderColor = UIColor.green.cgColor case .invalid(let errors): textField.layer.borderColor = UIColor.red.cgColor print(errors.first?.message ?? "") }}

Quand utiliser Validator

La bibliothèque est idéale pour :

  • Les formulaires de saisie (inscription, connexion, profil).
  • La validation des données avant envoi au serveur.
  • La vérification en temps réel de la saisie utilisateur.
  • L'analyse et la validation des réponses JSON/API.
  • Tout scénario nécessitant une vérification de données réutilisable à plusieurs reprises.

Validator réduit considérablement le code répétitif, rend la validation lisible et testable. C'est un outil incontournable pour tout développeur Swift travaillant avec des entrées utilisateur ou des données externes.

Recommendations