Lekki walidator formularzy logowania za pomocą Combine
Ponieważ napisałem artykuł dotyczący implementacji walidatora formularza logowania w RxSwift, zdecydowałem się napisać artykuł dotyczący tego samego pomysłu z wykorzystaniem frameworka Apple Combine.
Lekki walidator formularzy logowania za pomocą RxSwiftPrawie wszystkie aplikacje mobilne wymagają formularza logowania i przed kontynuowaniem procesu logowania należy zweryfikować dane uwierzytelniające użytkownika.
Zacznijmy wdrażać nasz reaktywny walidator w prosty sposób.
Najpierw zaimportujmy Combine
i Foundation
zdefiniujmy nasze enum błędów, aby obsłużyć oczekiwane błędy sprawdzania poprawności:
Po drugie, utwórzmy LoginFormValidator
klasę, a następnie dodajmy prywatne Constants
wyliczenie i kolejne wyliczenie ValidationType
dla typów walidacji.
Stworzyliśmy validate
funkcję z 2 parametrami text
, type
która będzie zarządzać procesem sprawdzania poprawności wewnątrz klasy i zwracać typ AnyPublisher<Void, ValidationError>
zwracany Void
w przypadku powodzenia lub ValidationError
niepowodzenia.
Następnym krokiem jest utworzenie naszych prywatnych funkcji do sprawdzania poprawności adresu e-mail i hasła.
Stworzyliśmy nasze prywatne funkcje validateEmail
i ValidatePassword
utrzymaliśmy nasz kod w czystości.
Używamy Future
do zarządzania stanem i zwracania wyniku oraz dodaliśmy Deferred
tutaj oczekiwanie na realizację Future
bloku.
Wreszcie, zamierzamy zaimplementować użycie LoginFormValidator
klasy w czasie rzeczywistym.
Teraz nasz walidator jest gotowy do użycia i możesz dodać więcej przypadków walidacji w zależności od wymagań aplikacji.
Starałem się, aby było to proste, aby łatwo wyjaśnić ideę i można się do tego przyzwyczaić.
Implementację walidatora formularza logowania można znaleźć RxSwift
w poniższej historii.