Datenvalidierung in Swift (iOS/macOS): Best Practices und Tools

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Datenvalidierung in Swift (iOS/macOS): Wie wählt man das richtige Werkzeug aus und vermeidet Fehler



Datenvalidierung ist eine der Schlüsselphasen bei der Entwicklung von mobilen und Desktop-Anwendungen in Swift. Ohne sie sind die Korrektheit der Benutzereingaben, die Datensicherheit und ein stabiler Betrieb der Anwendung nicht gewährleistet. In diesem Artikel analysieren wir gängige Bibliotheken und Ansätze zur Validierung im Apple-Ökosystem und geben Codebeispiele für iOS und macOS.



Warum ist Datenvalidierung in Swift wichtig?

Ein Benutzer kann alles Mögliche eingeben: von einer leeren Zeichenfolge bis hin zu einer SQL-Injection. Validierung hilft:

  • ungültige Daten zu verhindern (E-Mail ohne @, Passwort kürzer als 8 Zeichen);
  • die Anwendung vor Angriffen zu schützen (XSS, Injections);
  • die Benutzererfahrung zu verbessern – Fehler sofort hervorheben;
  • Geschäftsregeln einzuhalten (z. B. Alter > 18 Jahre).


Beliebte Bibliotheken für die Validierung in Swift

Obwohl Foundation grundlegende Werkzeuge (NSPredicate, reguläre Ausdrücke) bietet, sind für komplexe Szenarien spezialisierte Bibliotheken besser geeignet.



1. Validator (von eMKa)

Eine der beliebtesten Open-Source-Bibliotheken. Unterstützt die Validierung von Zeichenfolgen, Zahlen, Daten sowie benutzerdefinierte Regeln.

// Installation über SPM: https://github.com/eMKa/Validatorimport Validator

let emailRule = ValidationRulePattern(pattern: EmailValidationPattern.standard)let result = "test@example.com".validate(rule: emailRule)switch result {case .valid: print("E-Mail ist gültig")case .invalid(let errors): print("Fehler: \\(errors.first?.message ?? "Unbekannter Fehler")")}

Die Bibliothek unterstützt Regelketten: "password123".validate(rules: [lengthRule, uppercaseRule, digitRule]). Ideal für Registrierungsformulare.



2. SwiftValidator (von jpotts18)

Eine leichte Bibliothek zur Validierung von Eingabefeldern. Funktioniert mit UIKit und SwiftUI. Ermöglicht die Festlegung von Regeln für jedes Textfeld.

// Installation: https://github.com/jpotts18/SwiftValidatorimport SwiftValidator

let validator = Validator()validator.registerField(emailTextField, rules: [RequiredRule(), EmailRule()])validator.registerField(passwordTextField, rules: [RequiredRule(), MinLengthRule(length: 8)])

validator.validate { errors in if errors.isEmpty { print("Alle Felder sind gültig") } else { for (field, error) in errors { print("Fehler in \\(field): \\(error.errorMessage)") } }}

Ideal für Formulare mit vielen Feldern – die Validierung kann zentral gesteuert werden.



3. Regex (integrierte Foundation-Lösung)

Wenn Sie keine externen Abhängigkeiten einbinden möchten, verwenden Sie NSRegularExpression. Geeignet für einfache Prüfungen.

func isValidEmail(_ email: String) -> Bool {    let pattern = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,64}"    let regex = try? NSRegularExpression(pattern: pattern)    let range = NSRange(location: 0, length: email.utf16.count)    return regex?.firstMatch(in: email, range: range) != nil}

// Verwendungif isValidEmail("user@example.com") { print("E-Mail ist gültig")} else { print("Ungültiges E-Mail-Format")}

Nachteil: schwer zu warten und zu erweitern. Für größere Projekte sind Bibliotheken besser geeignet.



4. ValidatedPropertyKit (aus der Community)

Ein moderner Ansatz mit Property Wrappers. Ermöglicht die direkte Annotation von Modelleigenschaften.

// Installation: https://github.com/SvenTiigi/ValidatedPropertyKitimport ValidatedPropertyKit

struct User { @Validated(.nonEmpty, .email) var email: String @Validated(.minLength(8), .containsUppercase) var password: String}

var user = User()user.email = "test" // Fehler: ungültige E-Mailuser.password = "weak" // Fehler: Passwort zu kurzprint(us

Empfehlungen