Lekki walidator formularzy logowania za pomocą Combine

May 09 2023
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. Prawie wszystkie aplikacje mobilne wymagają formularza logowania i przed kontynuowaniem procesu logowania należy zweryfikować dane uwierzytelniające użytkownika.

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ą RxSwift

Prawie 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 Combinei Foundationzdefiniujmy nasze enum błędów, aby obsłużyć oczekiwane błędy sprawdzania poprawności:

Po drugie, utwórzmy LoginFormValidatorklasę, a następnie dodajmy prywatne Constantswyliczenie i kolejne wyliczenie ValidationTypedla typów walidacji.

Stworzyliśmy validatefunkcję z 2 parametrami text, typektóra będzie zarządzać procesem sprawdzania poprawności wewnątrz klasy i zwracać typ AnyPublisher<Void, ValidationError>zwracany Voidw przypadku powodzenia lub ValidationErrorniepowodzenia.

Następnym krokiem jest utworzenie naszych prywatnych funkcji do sprawdzania poprawności adresu e-mail i hasła.

Stworzyliśmy nasze prywatne funkcje validateEmaili ValidatePasswordutrzymaliśmy nasz kod w czystości.
Używamy Futuredo zarządzania stanem i zwracania wyniku oraz dodaliśmy Deferredtutaj oczekiwanie na realizację Futurebloku.

Wreszcie, zamierzamy zaimplementować użycie LoginFormValidatorklasy 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źć RxSwiftw poniższej historii.

Lekki walidator formularzy logowania za pomocą RxSwift