
학교에서 수강 중인 소프트웨어공학 에서 팀프로젝트를 진행 중이다. Flutter 를 활용해서 앱을 만들고 있는데 오랜만에 Flutter 를 만지다보니 진행이 생각보다 더뎠고, 공부하는 느낌으로다가 정리를 해보려고 한다.
오늘은 Form 과 TextFormField 를 정리해보려고 한다.
위 두개는 TextField 의 상위 버젼이라고 생각하면 쉽다. 텍스트를 입력할 수 있는 TextField 에 다양한 속성을 추가한 TextFormField 와 이들을 한번에 관리할 수 있는 Form 이라고 생각하면 된다.

우선 formKey 가 필요하다. TextFormField 에 입력된 값을 저장할 form 이다.

상위 위젯에 Form 을 선언하고 이후 child 를 구현하면 끝이다.

Form 내부에선 TextFormField 가 필요하다. TextFormField 를 Child 로 갖는 별도의 위젯으로 선언했다. 파라미터에 대한 설명은 아래와 같다.
obsecureText : true인 경우 입력 값이 *로 보인다.
keyboardType : email, password, number 등등 다양한 inputType을 결정한다.
textinputAction : next, done 과 같이 keyboard enter의 속성?을 결정한다.
hintText : 어떤 내용을 입력할지에 대한 text를 결정한다.
maxSize : validator에 사용할 문자열의 최소 길이를 결정한다.
errorMessage : validator에 맞지 않는 데이터일 때 보여줄 error Message를 결정한다.


이런 식으로 가입하기 버튼을 누르면 _submit 함수가 호출되어 TextFormField 의 값을 검증하는 로직이 실행되도록 구현했다.

validater 로 설정한 값이 아닌 경우 Error Message 를 출력한다.

로그인 역시 회원가입과 동일하게 작동하는 것을 볼 수 있다.