Validation des données en Swift (iOS/macOS) : bibliothèques et approches

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

Validation des données en Swift (iOS/macOS) : bibliothèques, outils et exemples pratiques



La validation des données est l’un des aspects clés du développement d’applications iOS et macOS de qualité. Sans une vérification fiable des données saisies, l’utilisateur peut rencontrer des erreurs, un comportement incorrect de l’interface ou même des plantages. Dans cet article, nous examinerons les meilleures bibliothèques et approches pour la validation des données en Swift, et fournirons des exemples concrets de code.



Pourquoi la validation des données est-elle nécessaire ?

La validation permet de :

  • Garantir l’exactitude des données saisies (email, téléphone, mot de passe).
  • Prévenir les erreurs côté serveur.
  • Améliorer l’expérience utilisateur grâce à un retour instantané.
  • Renforcer la sécurité de l’application.


Bibliothèques populaires pour la validation en Swift

Aujourd’hui, il existe plusieurs bibliothèques éprouvées qui simplifient la validation des données :

  • Validated — une bibliothèque légère avec prise en charge de Combine et SwiftUI.
  • SwiftValidator — l’une des premières bibliothèques pour la validation des champs de texte.
  • Validator (par Adamwaite) — un outil simple et flexible avec de nombreuses règles intégrées.
  • Regex — pas une bibliothèque, mais un mécanisme intégré pour travailler avec les expressions régulières, souvent utilisé pour la validation.


Exemple 1 : Validation d’email avec une expression régulière

La méthode la plus simple consiste à utiliser NSRegularExpression ou la méthode intégrée range(of:options:).

import Foundation

func isValidEmail(_ email: String) -> Bool { let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,64}" let emailPredicate = NSPredicate(format: "SELF MATCHES %@", emailRegex) return emailPredicate.evaluate(with: email)}

// Utilisationprint(isValidEmail("test@example.com")) // trueprint(isValidEmail("invalid-email")) // false


Exemple 2 : Validation de mot de passe (longueur, présence de chiffres et de caractères spéciaux)

Il est souvent exigé que le mot de passe contienne au moins 8 caractères, au moins un chiffre et un caractère spécial.

func isValidPassword(_ password: String) -> Bool {    // Minimum 8 caractères    guard password.count >= 8 else { return false }        // Vérification de la présence d’un chiffre    let digitRegex = ".*[0-9]+.*"    let digitPredicate = NSPredicate(format: "SELF MATCHES %@", digitRegex)    guard digitPredicate.evaluate(with: password) else { return false }        // Vérification de la présence d’un caractère spécial    let specialCharRegex = ".*[!@#$%^&*()_+\\\\-=\\\\[\\\\]{};':\\"\\\\\\\\|,./<>?]+.*"    let specialPredicate = NSPredicate(format: "SELF MATCHES %@", specialCharRegex)    guard specialPredicate.evaluate(with: password) else { return false }        return true}

print(isValidPassword("Pass123!")) // trueprint(isValidPassword("weak")) // false


Exemple 3 : Utilisation de la bibliothèque Validator (Adamwaite)

La bibliothèque Validator offre une syntaxe pratique pour les chaînes de règles.

import Validator

let emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard, error: "Email invalide")let emailResult = "user@domain.com".validate(rule: emailRule)

switch emailResult {case .valid: print("Email valide")case .invalid(let errors): print("Erreur : \\(errors.first?.message ?? "")")}


Exemple 4 : Validateur personnalisé pour vérifier l’âge

Il est parfois nécessaire de vérifier que l’utilisateur a un âge minimum.

struct AgeValidator {    static func isValid(age: Int) -> Bool {        return age >= 18 && age <= 120    }}

// Utilisationlet userAge = 25if AgeValidator.isValid(age: userAge) { print(

Recommendations