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/ValidatorOu 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.
Aussi dans la bibliothèque
Travailler avec les archives ZIP en PHP : guide complet sur ZipArchive
GraphQL sur Kotlin : Aperçu des bibliothèques et outils pour le développement serveur
Autorisation et authentification en PHP : guide complet avec exemples
Actors Swift : guide complet avec exemples concrets