Datenüberprüfungs-Framework in iOS-Anwendungen

    „In unserem Unternehmen legen wir besonderes Augenmerk auf die Qualität des Produkts“, lautet eine Vorlage, die häufig auf den Websites von Unternehmen zu finden ist, die verschiedene Dienstleistungen anbieten, und zwar nicht nur im IT-Bereich. Die Art und Weise, wie die Qualität des Softwareprodukts erreicht wird, ist jedoch den Benutzern verborgen und erregt sie nur in den Momenten, in denen ein Fehler aufgetreten ist. Einer der qualitativen Indikatoren der Anwendung ist, wie sie auf nicht standardmäßige Benutzeraktionen reagiert. Bei den meisten Client-Server-Lösungen beziehen sich diese Aktionen auf die Dateneingabe. Als Nächstes beschreiben wir, welche Datenüberprüfungslösungen von iOS-Entwicklern in unserem Team verwendet werden.

    Eine typische Anwendung zur Datenvalidierung entsteht häufig in einer mobilen Anwendung. Die Konsequenzen, die der Fehler in diesem Abschnitt der Anwendung mit sich bringt, können unkritisch sein und zu einer Verlangsamung des gesamten Systems führen, wenn keine Einschränkungen für die übertragenen Daten festgestellt wurden. Vergessen Sie nicht die Besonderheiten mobiler Geräte: Wenn die Anwendung als mobiler Client zum Anzeigen von Daten von einem Remotedienst verwendet wird, sollte die Menge dieser Daten begrenzt werden, um ein langes Herunterladen zu vermeiden.

    Zunächst markieren wir die Basisdaten, die überprüft werden sollen. Die erste und häufigste Art der Überprüfung ist die Überprüfung der eingegebenen Textdaten. Zahlen werden in der Regel auch in Textfeldern angezeigt und sind ein Sonderfall einer Textdarstellung. Die zweite Art der Prüfung sollte sich auf die Eingabe des Datums beziehen. Oft muss eine Anwendung überprüfen, ob das eingegebene Datum vor dem aktuellen liegt. Der dritte Typ, der validiert werden muss, ist direkt die Rohdaten oder einfacher die Anzahl der Bytes, mit denen die Anwendung ohne signifikanten Leistungsverlust arbeitet.

    Alle oben genannten Elemente und Methoden zur Lösung der darin festgelegten Aufgaben wurden von uns in einem kleinen Framework zusammengefasst, das in Analogie zu anderen Standard-iOS-Paketen - ValidationKit - benannt wurde. Zum besseren Verständnis des Inhalts dieses Frameworks kann der Inhalt wie folgt dargestellt werden:



    Logisch isolierte Teile des Frameworks, mit denen ein bestimmtes Problem aus der Liste der zu überprüfenden Daten gelöst werden soll, werden in verschiedenen Farben angezeigt. Durchgezogene Linien kennzeichnen die Vererbung, gestrichelte Linien kennzeichnen die Protokollimplementierung.
    Das Diagramm zeigt also, dass das Grundprotokoll für alle Klassen von Validatoren ist. Abgeleitetes ProtokollImplementieren Sie Validatoren, die direkt mit Textdaten arbeiten. Wir werden kurz beschreiben, was jeder der implementierten Validatoren darstellt:

    VLDDateValidator - zur Validierung des Datums. Standardmäßig sollte das an den Prüfer übergebene Datum nicht vor dem aktuellen Datum liegen.

    VLDRegExpValidator - Wird als Basisklasse für auf regulären Ausdrücken basierende Validatoren verwendet. Um Ihren eigenen Validator für untergeordnete Nachkommen dieser Klasse zu implementieren, müssen Sie die statische Methode + (NSString *) regExpPattern überschreiben , die die Regelzeichenfolge zurückgibt.

    VLDEmailValidator , VLDStrongPasswordValidator , VLDPhoneNumberValidator- Validatoren für reguläre Ausdrücke werden verwendet, um E-Mail-Adressen, Passwortsicherheit und Telefonnummern zu überprüfen.

    VLDBoundaryNumberValidator - wird verwendet, um eine Zahl innerhalb der angegebenen Grenzen zu validieren. Die Unter- und Obergrenze der zu überprüfenden Nummer werden angezeigt. Das angegebene Jahr darf beispielsweise nicht vor 1900 und

    nicht nach 2015 liegen. VLDBoundaryCharactersValidator - wird zum Überprüfen der Anzahl der Zeichen verwendet. Die unteren und oberen Grenzen der Anzahl der Zeichen sind angegeben. Zum Beispiel kann ein Telefon nicht weniger als 4 und nicht mehr als 11 Stellen haben.

    Es ist anzumerken, dass in einer großen Anzahl von Projekten die Länge der verarbeiteten Linien begrenzt ist. Um dieses Problem zu lösen, ohne den Code durch die Verarbeitung von Delegate-Methoden zu überlasten und wurden die Klassen VLDTextField und VLDTextView erstellt , mit denen Sie nicht mehr als erforderlich in das Zeichenfeld eingeben können. Auch für diese Klassen können Sie benutzerdefinierte Validatoren angeben, die das Protokoll implementieren.. Für VLDTextField ist es auch in der Initialisierungsphase möglich, einen der Standardüberprüfungstypen festzulegen.

    Die Aufgabe der Kategorien NSString + VLDValidation und NSData + VLDValidation besteht darin, die Länge der Daten zu überprüfen, die implizit für den Benutzer in der Anwendung verwendet werden. Die typischste Situation, in der dies erforderlich sein kann, besteht darin, die Größe der Daten zu überprüfen, bevor sie über das Netzwerk an einen Remote-Dienst übertragen werden. Wenn ein Bild beispielsweise mehr als 10 MB wiegt, dauert dies in einer langsamen Internetumgebung sehr lange. Daher können Sie vor dem Senden einer Anforderung an den Server sicherstellen, dass alle Zeilen und Datenobjekte die angegebenen Werte nicht überschreiten.

    Das Framework verwendet standardmäßig auch die Konsolenprotokollierung, die mit dem in der VLDHelpers- Datei beschriebenen Makro deaktiviert werden kann .

    Abschließend sei noch einmal auf die Aufgaben hingewiesen, für deren Lösung das entwickelte Framework erstellt wurde:

    1. Beschränkung der Zeicheneingabe in Felder zur Bearbeitung.
    2. Validierung von E-Mail, Passwort und Telefonnummer.
    3. Erstellen Sie benutzerdefinierte Validatoren und verwenden Sie sie in Verbindung mit VLDTextField und VLDTextView .
    4. Validierung des Datums.
    5. Überprüfen der Größe der Daten, die gesendet oder gespeichert werden.

    PS Der Quellcode des Projekts kann hier heruntergeladen werden .

    Jetzt auch beliebt: