Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

10 UI 작성 로그인 페이지 UI 작성 #11

Conversation

brownglasses
Copy link
Contributor

@brownglasses brownglasses commented Jan 1, 2024

요약

  • [Add : 체크박스 컴포넌트 ]
  • [Add : 텍스트필드 컴포넌트]
  • [Add: 둥근 모서리 버튼]
  • [Add: 로그인 스크린]
  • [Add: 회원가입 스크린]
  • [Add: 이메일 회원가입 스크린]

이슈 번호

작업 내용

  • 피그마 1~3 페이지 UI 를 코드로 작성하였습니다.

스크린샷

image
image
image
image
image
image
image

2024-01-01.100243.mp4

커밋 메세지의 resolve 부분을 실수로 10이 아닌 1로 적었습니다
참고해서 봐주세요

checkbox 와 택스트 일렬로 배치되어있는 부분들이 많아 컴포넌트로 작성해보았습니다.

resolves: #1
텍스트필드를 앱에 맞게 작성해보았습니다.
label, hintText 가 공통적으로 나타나 속성값으로 넣었고
또한 validate 와 데이터 저장을 구현하기 위해
onSaved 와 Validator 속성을 추가하였습니다.
그리고 비밀번호 확인과 재확인을 구현할 때
입력된 비밀번호를 변화될 때마다 얻어와야하기 때문에
onChanged 속성을 추가하였습니다.

resolves: #1
둥근 모서리 버튼이 앱에 자주 나타나 컴포넌트로 작성하였습니다.
String text, VoidCallback onPressed 을 받습니다.

resolves: #1
로그인 페이지의 UI 를 배치하였습니다.
UI 가 많이 수정될 예정이니 디테일하게 구성하지는 않았습니다.
체크박스 컴포넌트, 텍스트 필드 컴포넌트를 사용하였습니다.
후에 텍스트 필드에 onSaved 와 validate 를 required 속성으로 추가하여서
구색을 맞춰놓기 위해 id, password, rememberMe 등의 변수를 추가하고 함수를 채워넣었습니다 !

UI배치와는 관계없으므로 나중에 마음껏 수정하시거나 지워도 문제 없을 것 같습니다!

resolves: #1
어느 방식으로 회원가입을 할지 선택하는 페이지입니다.

일단 이메일 회원가입 페이지만 연결해놓았습니다.

resolves: #1
- '비밀번호확인'을 구현할 때 '비밀번호' 입력 값을 받아와야하므로 '비밀번호' 텍스트 필드에서는 따로 onChanged를 사용하였습니다.
-  페이지 UI 를 다 채우기에는 화면이 너무 짧아 스크롤 뷰로 만들었습니다. 후에 UI 의 크기를 조정하거나 아예 스크롤 뷰로 전환할지 검토해야 할 것 같습니다.
- '모두 동의' 1. 모두 동의 체크 박스를 누르면 하위 동의 요소들이 모두 동의 되어야함 2. 모든 하위 동의 요소들이 동의 되면 모두 동의가 체크 표시
이 부분을 구현하기 위해  updateAllAgreed 함수를 추가하였습니다.
- validate 를 모두 만족했을 떄 회원가입을 누르면 모든 폼의 값들이 프린트되게 하였습니다.
UI 페이지를 연결하기 위해 route 를 업데이트 하였습니다.

resolves: #1
@brownglasses brownglasses linked an issue Jan 1, 2024 that may be closed by this pull request
@brownglasses brownglasses self-assigned this Jan 1, 2024
@brownglasses brownglasses added 🎉새로운 기능 새로운 기능을 만들어 주세요 🧵하는중 현재 작업 중입니다. labels Jan 1, 2024
@fridayCCC fridayCCC added this to the local login boilerplate milestone Jan 2, 2024
@fridayCCC fridayCCC removed the 🧵하는중 현재 작업 중입니다. label Jan 2, 2024
@fridayCCC
Copy link
Contributor

수고하셨습니다. 현재 내용을 그대로 main으로 머지하고 다음과 같은 테스크를 이어서 하는 것을 제안해 봅니다. 이유는 하단에 적어두었습니다. 다수가 동의하면 해당 이슈를 생성해 추후 진행하면 될 것 같습니다.

  1. lib/shared/uikit 폴더를 만드는 것을 제안합니다.
  • ui 라이브러리를 가져와 사용하는 것처럼 페이지에서 중복해서 쓰는 디자인된 위젯을 한곳에 모아두는 것을 제안합니다.
    • shared 폴더는 우리가 마치 라이브러리를 가져와서 사용하는 것처럼 현재 프로젝트와 독립되어 다른 프로젝트에서도 쓸 수 있는 코드셋을 모아두기 위함입니다.
    • shared/uikit 폴더 밑에 ui를 모아두면 추후 ui를 교체할 때, storybook을 적용해서 디자이너와 협업 할 때 이점이 있을 것으로 생각됩니다.
    • shared/uikit에 ui component, animation function, theme 등 ui에 관련된 정보를 넣어두는 것을 제안합니다.
      참고: https://github.com/erickzanardo/nes_ui
  1. Flutter easy_localization을 제안합니다.
  • '회원가입', '비밀번호확인' 등 텍스트를 그대로 ui 컴포넌트에 하드 코딩 하는 것은 한/영을 지원하거나 텍스트가 전체적인 수정이 있을 경우 수정에 번거로움을 초래합니다.
  • 현재 한/영 지원을 하지 않더라도 추후 수정을 용이하게 하고, 컴포넌트 재사용성을 높이기 위해 텍스트 관리 class를 만드는 것을 제안합니다.
  • 해당 라이브러리를 사용해도 좋고, 직접 구현하는 방식을 선택해도 좋을 것 같습니다.
    참고: https://pub.dev/packages/easy_localization?source=post_page-----8fa5f50a3fd2--------------------------------
  1. lib/shared/helpers/form 폴더를 만드는 것을 제안합니다.
  • 현재 프로젝트에는 굉장히 다양한 form이 재사용될 것으로 추측됩니다. (로그인, signup, 팀 만들기, task 만들기 등)
  • 재사용성과 테스트 용이성을 위해 formValidationMixin을 만드는 것을 추천합니다.
  • shared 폴더로 넣은 이유는 form이 우리 프로젝트로 한정된 기능이 아니기 때문이고, helpers은 추후 범용적인 mixin, util등을 만들었을 때 용이할 것 같아서 제안합니다.
    참고: https://blog.nonstopio.com/form-validation-with-mixins-in-flutter-e9a425bca5d1
  1. 이름 규칙에 대한 논의가 필요할 것으로 생각됩니다.
  • hinted_textfield, rounded_elvatedbutton, checkbox_text_row 등 widget에 대한 이름 규칙이 우선 필요할 것으로 생각됩니다.

Copy link
Contributor

@fridayCCC fridayCCC left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다.

@jjoonleo jjoonleo changed the base branch from main to 2-dx-관련-린트-설정-제안-드립니다 January 2, 2024 10:00
@brownglasses
Copy link
Contributor Author

brownglasses commented Jan 3, 2024

수고하셨습니다. 현재 내용을 그대로 main으로 머지하고 다음과 같은 테스크를 이어서 하는 것을 제안해 봅니다. 이유는 하단에 적어두었습니다. 다수가 동의하면 해당 이슈를 생성해 추후 진행하면 될 것 같습니다.

  1. lib/shared/uikit 폴더를 만드는 것을 제안합니다.
  • ui 라이브러리를 가져와 사용하는 것처럼 페이지에서 중복해서 쓰는 디자인된 위젯을 한곳에 모아두는 것을 제안합니다.

    • shared 폴더는 우리가 마치 라이브러리를 가져와서 사용하는 것처럼 현재 프로젝트와 독립되어 다른 프로젝트에서도 쓸 수 있는 코드셋을 모아두기 위함입니다.
    • shared/uikit 폴더 밑에 ui를 모아두면 추후 ui를 교체할 때, storybook을 적용해서 디자이너와 협업 할 때 이점이 있을 것으로 생각됩니다.
    • shared/uikit에 ui component, animation function, theme 등 ui에 관련된 정보를 넣어두는 것을 제안합니다.
      참고: https://github.com/erickzanardo/nes_ui
  1. Flutter easy_localization을 제안합니다.
  • '회원가입', '비밀번호확인' 등 텍스트를 그대로 ui 컴포넌트에 하드 코딩 하는 것은 한/영을 지원하거나 텍스트가 전체적인 수정이 있을 경우 수정에 번거로움을 초래합니다.
  • 현재 한/영 지원을 하지 않더라도 추후 수정을 용이하게 하고, 컴포넌트 재사용성을 높이기 위해 텍스트 관리 class를 만드는 것을 제안합니다.
  • 해당 라이브러리를 사용해도 좋고, 직접 구현하는 방식을 선택해도 좋을 것 같습니다.
    참고: https://pub.dev/packages/easy_localization?source=post_page-----8fa5f50a3fd2--------------------------------
  1. lib/shared/helpers/form 폴더를 만드는 것을 제안합니다.
  • 현재 프로젝트에는 굉장히 다양한 form이 재사용될 것으로 추측됩니다. (로그인, signup, 팀 만들기, task 만들기 등)
  • 재사용성과 테스트 용이성을 위해 formValidationMixin을 만드는 것을 추천합니다.
  • shared 폴더로 넣은 이유는 form이 우리 프로젝트로 한정된 기능이 아니기 때문이고, helpers은 추후 범용적인 mixin, util등을 만들었을 때 용이할 것 같아서 제안합니다.
    참고: https://blog.nonstopio.com/form-validation-with-mixins-in-flutter-e9a425bca5d1
  1. 이름 규칙에 대한 논의가 필요할 것으로 생각됩니다.
  • hinted_textfield, rounded_elvatedbutton, checkbox_text_row 등 widget에 대한 이름 규칙이 우선 필요할 것으로 생각됩니다.

리뷰 정말 감사합니다! 많은 도움이 되었습니다,
말씀하신 내용 검토하도록 하겠습니다

@brownglasses brownglasses merged commit fab12c5 into 2-dx-관련-린트-설정-제안-드립니다 Jan 3, 2024
2 checks passed
@brownglasses brownglasses deleted the 10-ui-작성-로그인-페이지-ui-작성 branch January 3, 2024 07:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🎉새로운 기능 새로운 기능을 만들어 주세요
Projects
None yet
Development

Successfully merging this pull request may close these issues.

UI 작성 - 로그인 페이지 UI 작성
2 participants