Qu'est-ce que Validator et pourquoi en avez-vous besoin ?
Validator est une bibliothèque légère pour la validation de données en Swift, conçue pour les applications iOS et macOS. Elle permet de décrire de manière déclarative les règles de vérification des entrées utilisateur, évitant ainsi les constructions if-else volumineuses. L'objectif principal est de simplifier le traitement des formulaires, des requêtes API et de toute autre donnée nécessitant une vérification de validité (email, mot de passe, âge, plage de nombres, etc.).
Installation
Validator s'installe via Swift Package Manager (SPM). Ajoutez la dépendance dans Package.swift :
.package(url: "https://github.com/adamwaite/Validator.git", from: "3.2.0")Ou via Xcode : File → Add Packages → collez l'URL du dépôt.
Fonctionnalités principales
- Validation de chaînes : email, URL, expressions régulières, longueur, non-vide.
- Validation numérique : plage, valeur minimale/maximale, nombres entiers.
- Règles composites : combinaison de plusieurs conditions via
And/Or. - Validateurs personnalisés : création de vos propres règles via des closures.
- Intégration avec UIKit/SwiftUI : extensions prêtes à l'emploi pour UITextField et SwiftUI View.
Exemple de code en Swift (iOS)
import Validator
// 1. Définir une règle pour l'emaillet emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard, error: "Email invalide")
// 2. Valider la 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)")}
// 3. Règle composite : mot de passe de 8 à 20 caractères, contenant au moins un chiffrelet passwordRule = ValidationRuleLength(min: 8, max: 20, error: "Longueur du mot de passe de 8 à 20") && ValidationRulePattern(pattern: ".*[0-9].*", error: "Le mot de passe doit contenir un chiffre")
let password = "SecurePass1"let passwordResult = password.validate(rule: passwordRule)
// 4. Validation UITextField (UIKit)let textField = UITextField()textField.text = "user@domain.com"textField.validate(rule: emailRule) { result in // traitement du résultat}Quand utiliser Validator
- Formulaires d'inscription/connexion (email, mot de passe, téléphone).
- Validation de la saisie dans UITextField / SwiftUI TextField.
- Vérification des données avant envoi au serveur.
- Filtrage et vérification du contenu utilisateur (avis, commentaires).
- Analyse et validation des réponses JSON/API.
La bibliothèque est idéale pour les projets nécessitant un système de validation de données flexible, lisible et extensible, sans code boilerplate superflu.
Aussi dans la bibliothèque
Client Elasticsearch pour Go (Golang) : guide complet
Helmet pour JavaScript (Node.js) : guide complet avec exemples
zerolog Go : guide complet avec exemples pratiques
Configuration des applications Java : aperçu des bibliothèques et outils
Client Elasticsearch pour C++ : elasticlient et guide complet