Why Not ...?

FormState#

  • Requires controllers or state to track fields' values (i.e. You need to create TextEditingController to get TextField value).
  • Requires a separate state to assign API errors require to fields.
  • Requires extra state to track form's status (Loading, Invalid, etc.).

Flutter Form Builder#

  • Requires a separate state to assign API errors require to fields.
  • Requires a key to be able to access form.
  • Requires explicit calls for save and validate.

Reactive Forms#

  • Requires a lot of boilerplate (due to the model-driven approach).
  • Complex and has a higher learning curve.

BLoC + Formz#

  • Requires a lot of boilerplate, really a lot!
  • Complex and has a higher learning curve.
  • Formz doesn't get any more updates.