4INCENSE / geha-sajang-iOS

1 stars 0 forks source link

진입화면, 로그인, 약관동의, 회원가입 화면 #18

Closed dev-Lena closed 3 years ago

dev-Lena commented 3 years ago

피드백 받고 싶은 부분

과정

  1. 코드스쿼드 SignUp 프로젝트를 어느정도 참고하였습니다.
  2. ViewController에 코드가 집중되지 않도록 각 뷰의 클래스를 만들었습니다.
    • 목표는 뷰 클래스에서 자기가 자신을 업데이트하는 방식으로 진행되는 것입니다.
    • SignUpViewController 중 사진앱에서 이미지를 선택해 가져오는 구현부는 추후 분리할 예정입니다.
  3. 사용자 입력(TextField)에 따라 관련 뷰가 업데이트 되는 구조는 이슈 #11 에 정리했습니다.(초반에 생각한 것으로 실제 구현과는 조금 차이가 있을 수 있습니다.)
  4. 3번내용을 구현하다가 중복된 코드가 많아 이를 해결하기 위해 TextField와 Label 커스텀 클래스에 적용할 프로토콜과 상위 클래스 생성했습니다. (관련 이슈: #17 )

궁금한 점 및 걱정되는 부분

  1. Notification이 많다는 점 : 현재 TextField에 사용자가 입력한 내용이 InputUserData 싱글턴 객체에 업데이트 되고난 다음 TextFieldState가 정해지고 이 상태를 Notification userInfo에 담아서 노티를 보냅니다. 그리고 이 상태에 따라 View를 업데이트할 객체들이 관련 노티에 대해 Observer로 등록하고 그 노티를 받았을 때 자신을 업데이트하도록 하는 구조로 했는데요. (#11 참고) 걱정되는 점은 Notification을 이렇게 많이 사용해도 되는 것일까 걱정이 됩니다.

  2. 뷰가 state를 감지하고 state가 변경될 때 마다 자신을 업데이트하는 더 효율적인 방법이 있을 것 같습니다. 이는 계속해서 고민해보겠습니다. 혹시 이에 대해서도 코멘트 해주실 수 있다면 좋겠습니다. 🙏🏻

참고

  1. main.storyboard는 AppComposition에 있습니다.
  2. 나머지 부분은 구현 중입니다.

🙌🏻 컨벤션이나 구조, 코드 등 자유롭게 피드백 주세요! 감사합니다!

dev-Lena commented 3 years ago

일단 머지 후 진행하겠습니다!

dev-Lena commented 3 years ago

테스트 코드까지 작성하셨군요... 멋져요. 테스트는 크게 문제 없어보이는데,,,, 테스트는 저도 잘 모르겠습니다.. ㅋㅋ 다음에 PR 보내주실 때는 스크린 캡처 이미지도 같이 보내주시면 좋을 것 같아요.

더 이상 상속을 하지 않을 클래스는 final을 앞에 선언하는게 성능에 더욱 좋습니다.

그리고 super class 라는 폴더를 만들지 말고 Views라는 폴더 안에서 TextField나 이렇게 항목을 나눠서 정리하면 더 좋을 것 같네요. Manage라는 폴더도 결국에는 무엇을 Manage하는지에 따라 분류할 수도 있을 것 같구요.

전반적으로 잘 작성하신 것 같아요~ 아직은 크게 상위, 하위 객체 구조가 많지 않아서 OOP 관점에서 피드백 드릴 부분은 별로 없었습니다.

아 스크린 캡처을 생각 못했네요ㅠㅠ 죄송합니다. 부족한 코드지만 코리님 피드백 감사합니다! 👍🏻 피드백 주신 부분 참고하고 고민해서 수정하겠습니다 🙌🏻