Formidable Validator — Formdator is a fully object-oriented package for validating form fields before they get processed. Its key benefits, compared to all other similar packages, include:
- Object-oriented mindset: there is no static functions, only trustworthy immutable objects.
- Easy-to-compose validators, e.g.:
Trim(ReqEmail())
for a “trimmed-required-email”, it trims the entered email before trying to validate it. - You can apply multiple validation rules at once —
Rules
class. - Classes with short — yet meaningful — names like
Req
for a required (non-blank) field;ReqEmail
for a non-blank and well-formed email;MinLen
for a minimum number of characters. - No complex class hierarchy: each validator only implements the Dart’s built-in
call()
method.
For easier integration with the fields of a Flutter form, each validator implements the call()
method; therefore, any validator can be treated as an ordinary function.
Getting Started
A flexible package provides components that can be selected and grouped in various combinations so that user requirements can be fulfilled.
As a demonstration of such combinations of components, the code below shows how you can easily group Trim
and Email
to form a trimmed-email field with a custom error message in case of a malformed email.
@override Widget build(BuildContext context) { return TextFormField( onSaved: _onSaved, validator: Trim(Email(mal: 'malformed email.')), keyboardType: TextInputType.emailAddress, ); }
Demo application
The demo application provides a fully working example, focused on demonstrating exactly four validators in action — Rules, ReqEmail and Equal. You can take the code in this demo and experiment with it.
To run the demo application:
git clone https://github.com/dartoos-dev/formdator.git cd formdator/example/ flutter run -d chrome
This should launch the demo application on Chrome in debug mode.
Download source code on GitHub
Provides the list of the opensource Flutter apps collection with GitHub repository.