Was ist ein Validator und wozu wird er benötigt?
Validator ist eine leichtgewichtige Bibliothek zur Datenvalidierung in Swift, die für iOS- und macOS-Anwendungen entwickelt wurde. Sie ermöglicht es, Prüfregeln für Benutzereingaben deklarativ zu beschreiben und dabei umständliche if-else-Konstrukte zu vermeiden. Das Hauptziel ist es, die Verarbeitung von Formularen, API-Anfragen und anderen Daten zu vereinfachen, bei denen eine Korrektheitsprüfung erforderlich ist (E-Mail, Passwort, Alter, Zahlenbereich usw.).
Installation
Validator wird über den Swift Package Manager (SPM) installiert. Fügen Sie in Package.swift die Abhängigkeit hinzu:
.package(url: "https://github.com/adamwaite/Validator.git", from: "3.2.0")Oder über Xcode: File → Add Packages → fügen Sie die Repository-URL ein.
Hauptfunktionen
- String-Validierung: E-Mail, URL, reguläre Ausdrücke, Länge, Nicht-Leerheit.
- Numerische Validierung: Bereich, Minimal-/Maximalwert, ganze Zahlen.
- Zusammengesetzte Regeln: Kombination mehrerer Bedingungen über
And/Or. - Benutzerdefinierte Validatoren: Erstellung eigener Regeln über Closures.
- Integration mit UIKit/SwiftUI: Fertige Erweiterungen für UITextField und SwiftUI View.
Codebeispiel in Swift (iOS)
import Validator
// 1. Regel für E-Mail definierenlet emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard, error: "Ungültige E-Mail")
// 2. String validierenlet email = "test@example.com"let result = email.validate(rule: emailRule)
switch result {case .valid: print("E-Mail ist gültig")case .invalid(let errors): print("Fehler: \\(errors)")}
// 3. Zusammengesetzte Regel: Passwort zwischen 8 und 20 Zeichen, enthält mindestens eine Zifferlet passwordRule = ValidationRuleLength(min: 8, max: 20, error: "Passwortlänge zwischen 8 und 20") && ValidationRulePattern(pattern: ".*[0-9].*", error: "Passwort muss eine Ziffer enthalten")
let password = "SecurePass1"let passwordResult = password.validate(rule: passwordRule)
// 4. Validierung von UITextField (UIKit)let textField = UITextField()textField.text = "user@domain.com"textField.validate(rule: emailRule) { result in // Ergebnisverarbeitung}Wann Validator verwenden
- Registrierungs-/Anmeldeformulare (E-Mail, Passwort, Telefon).
- Eingabevalidierung in UITextField / SwiftUI TextField.
- Datenprüfung vor dem Senden an den Server.
- Filterung und Prüfung von Benutzerinhalten (Bewertungen, Kommentare).
- Parsing und Validierung von JSON/API-Antworten.
Die Bibliothek ist ideal für Projekte, die ein flexibles, lesbares und erweiterbares System zur Datenprüfung ohne überflüssigen Boilerplate-Code benötigen.