본문 바로가기
개발일지

[flutter 프로젝트]개발일지 03

by JINJINC 2025. 1. 28.
728x90
반응형

오늘의 목표

  • flutter 백과 연결하여 로그인 시도, 회원가입 user insert

수행한 작업

  1. login dio 객체로 백과 통신하여 로그인하기
  2. 회원가입화면에서 객체 만들어서 insert하기

문제 및 해결 방법

문제:

  • api baseUrl이 제대로 인식되지 않아서 문제가되었다 .

해결 방법:

  • 어떤 애뮬레이터를 사용하느냐에 따라서 다른 네트워크 주소가 필요하므로, 어떤 기기에 맞는 baseuril 을 맞추어 사용해야한다.

성과 및 배운 점

  • 로그인이나 회원가입에 필요한 textEditingcontroller를 class에 담아서 사용하면 여러곳에서 불러서 사용할 수 있어서 상태관리하기 편하였다.
    하지만 로그인 페이지는 한 페이지에서 연결되어있으므로 최상위에서 컨트롤러를 하위로 전달해줘야 하지만, 회원가입 페이지는 여러 페이지를 통해서 전달하므로, 상위에서 하위로 내려줄 필요없이 사용될 수 있다는 점이다.
  • Global Formkey는 여러곳에서 생성되면 오류가 발생함 , GlobalKey 는 form 위젯의 상태를 전역적으로 관리하고 조작하는 것이므로, 하나의 key만 선언될 수 있다 , formState에 직접 적은하여 폼의 유효성 검사, 데이터 초기화, 값 확인등의 작업을 수행할 수 있다는 점이다.
    form 을 사용하지 않으면 fromkey를 사용할 필요가 없다
    그렇기 때문에 GlobalKey는 한곳에서만 생성할 수 있고 아래로 내려줘야한다.

예를 들어, formKey.currentState를 사용해 Form 위젯에 연결된 상태를 가져옵니다.

if (formKey.currentState?.validate() ?? false) {
  print('Form is valid');
}

폼 유효성 검사:

Form 내부의 TextFormField나 기타 입력 필드의 validator를 호출하여 입력값의 유효성을 검사할 수 있습니다.

if (formKey.currentState?.validate() ?? false) {
  print('Form is valid');
} else {
  print('Form is invalid');
}

폼 제출 처리:

formKey.currentState?.save()를 호출하면 모든 입력 필드의 onSaved 콜백이 실행됩니다.

formKey.currentState?.save();

폼 초기화 및 재설정:

formKey.currentState?.reset()을 호출하면 폼 필드가 초기 상태로 돌아갑니다.

formKey.currentState?.reset();

위젯 간 전역 상태 공유:

GlobalKey는 위젯 트리 내에서 FormState를 공유하거나 유지할 때 유용합니다. 이를 통해 특정 조건에서 폼 데이터를 조작할 수 있습니다.

참고

https://developer.android.com/studio/run/emulator-networking?hl=ko

[Android Emulator 네트워킹 설정 | Android Studio | Android Developers

에뮬레이터는 앱에 복잡한 모델링 및 테스트 환경을 설정하는 데 사용할 수 있는 다목적 네트워킹 기능을 제공합니다.

developer.android.com](https://developer.android.com/studio/run/emulator-networking?hl=ko)

728x90
반응형

댓글