moko-fields
Библиотека moko-fields позволяет реализовывать формы ввода, а также их валидацию в общем коде.
FormField
Потребность в библиотеке возникла из-за того, что для создания логики формы ввода в общем коде необходимы следующие элементы:
LiveData(String)
- текст поляLiveData(Bool)
- валидно/невалидно полеLiveData(String)
- текст ошибки валидации
А представьте, что у вас 7 или 8 таких полей, получится много однотипного кода, в котором легко будет запутаться и допустить ошибку.
Библиотека позволяет использовать специальный класс FormField
для форм ввода, который включает в себя все эти три лайвдаты.
Для создания FormField
необходимо только установить тип и задать валидацию для этого значения. Тип поля не обязательно должен быть String
, подойдет любой, который можно как-то установить: int
, bitmap
, data
и тд.
Валидация
Разберем, как добавлять валидацию в FormField
:
- можно использовать встроенные валидаторы
- можно создать полностью свою валидацию
Как можно настроить валидацию:
- валидацию можно вызвать в любой момент. Зачем это?
- при первом вводе юзера - валидация не должна проверяться, пока он не закончит ввод до конца, и не нажмет кнопку, к которой будет привязана валидация, чтобы, пока он еще не ввел все, что задумал, у него не светились ошибки.
- поля можно объединить в список и валидировать их одновременно
- валидация полей может быть завязана на других полях (пароль + повторите пароль)
- у FormField есть поле
isValid
иvalidationError