- What is CombineValidate?
- Examples
- Basic usage
- CombineValidateExtended library
- Requirements
- Installation
- Documentation
Useful satellite for validation user inputs proposes for any SwiftUI architectures. (MVVM as basic reference)
- SwiftUI native
- Combine under the hood
- Fully customizable
- Validate simple fields for non empty values
- Validate fields by predefined or your own regular expressions
- Try input by multiple regex expressions and emerge up the result what is the regex got fired
- Pass your own error messages
- Localize error messages with custom localization table names
- Use the wide validation extension library
- Extend the set of validation possibilities as you want
Firstly you should define the validation publisher within your @Published
property
class FormViewModel: ObservableObject {
@Published var email = ""
public lazy var emailValidator: ValidationPublisher = {
$email.validateWithRegex(
regex: RegularPattern.email,
error: "Not email",
tableName: nil
)
}()
}
Excellent! And then, call the validate view modifier from your SwiftUI Input
TextField("Should email", text: $viewModel.email)
.validate(for: viewModel.emailValidator)
Enjoy!
Same steps you can apply to SecureField
and Toggle
.
Useful set of validation publishers and regular expressions library. Validation for
- any kind of credit card numbers
- urls
- hash tags
- numbers
- passwords
- much more
The CombineValidate dependes on the Combine reactive framework. Minimal requirements:
- iOS 13
- MacOS Catalina
Package installation occurs via SPM. Add package in your Xcode as dependency
- Find in File menu "Add packages"
- Use the repo link https://github.com/pridees/combine-validate and follow for installation steps
- Add the CombineValidate dependency to your project targets
Look at here and explore documentation.