Replies: 5 comments 7 replies
-
|
Beta Was this translation helpful? Give feedback.
1 reply
-
|
Beta Was this translation helpful? Give feedback.
1 reply
-
여기서 행위라는건 클릭, 터치 등을 의미하는건가요? |
Beta Was this translation helpful? Give feedback.
3 replies
-
예시가 없는 섹션은 예시를 추가해주시면 이해하기 편할 것 같습니다. |
Beta Was this translation helpful? Give feedback.
1 reply
-
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
이번에 대규모 리팩터링을 하면서 아래와 같은 패턴을 지키려고 노력했습니다.
UI 컨트롤러(Activity나 Fragment)
특정 화면으로 이동하는 메서드 명
navigateToXxx()
특정 화면으로 이동하지 않고 화면을 덮는 UI를 보여주는 메서드 명
showXxx()
특정 UI의 로직을 초기화하는 메서드 명
setup[UI 이름]()
ViewModel의 프로퍼티 관찰하는 메서드 명
observe[프로퍼티 이름]()
데이터 바인딩 시 함수를 인자로 받는 매개변수 명
on[UI 이름][행위]
이유는 xml를 하나의 뷰로 생각하자는 의미.
뷰가 상호작용 시 실행될 함수를 입력받을 때를 생각해보면 위와 같은 네이밍이 어울린다고 생각합니다. 뷰 내부에서는 어떤 로직이 실행될 지 몰라도 된다고 생각합니다.
메서드 순서
setupDataBinding()
setupBackPressedDispatcher()
setupToolbar()
setupXxx()
observeXxx()
observeUiEvent()
만약 함수 분리가 필요하다면 최대한 사용되는 함수와 가까운 곳에 위치하도록 합니다.
예를 들어 setupDataBinding에 필요한 로직을 함수 분리했다면 setupDataBinding 바로 아래에 위치하도록 합니다.
ViewModel
UiEvent 네이밍
이벤트 네이밍은 한글로 읽을 때 순서로. (명사-동사-성공 여부)
예) 프로필 이미지 수정 실패 -> ProfileImageUpdateFail
성공일 땐
XxxComplete
, 실패일 땐XxxFail
멤버 변수 순서
UiEvent를 가장 아래로.
예시
더 나은 네이밍이 있거나 위의 컨벤션이 불필요하다고 생각되시면 주저없이 말해주셔도 괜찮습니다. 😄
Beta Was this translation helpful? Give feedback.
All reactions