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

[AN] 홈뷰 구조 리팩터링 #594

Merged
merged 18 commits into from
Nov 7, 2023
Merged

[AN] 홈뷰 구조 리팩터링 #594

merged 18 commits into from
Nov 7, 2023

Conversation

s9hn
Copy link
Collaborator

@s9hn s9hn commented Oct 31, 2023

😋 작업한 내용

  • 로고 이미지 바꾸기
  • 잔디 씨앗 -> 경험치
  • 스터디 없을 때 워딩 바꾸기 -> 참여한 스터디가 없어요
  • 아이템 터치 했을 떄 스터디 넘어가기
  • 바텀네비게이션 홈 이름 변경
  • 데이터바인딩 제거
  • UDF 파이프라인 구축
  • UiState 적용
  • 데이터모델 구현

🙏 PR Point

변경사항이 굉장히 많습니다

홈뷰의 대대적인 구조개편을 진행했습니다.
데이터레이어(데이터모델) - 도메인레이어(유즈케이스, 옵셔널) - 뷰모델(uiState, HotFlow) - 뷰(ViewBinding)

  • 홈 뷰는 별다른 도메인레이어가 필요하다고 생각하지않았고, 데이터레이어의 엔티티를 참조해 uiState를 구성하고 있습니다.
  • 뷰는 uiState를 수집하며, 뷰바인딩으로 뷰를 그립니다.
  • 도메인레이어의 레포지터리 인터페이스 모듈을 제거하였고, 이에 따른 수순으로 DI 레포지토리 모듈을 Binds에서 Provides로 모두 수정 및 적용 해놓았습니다.
  • BaseClass를 뷰바인딩에 맞게 재구축하였습니다. 본인담당 리팩터링 진행할 때, 새로운 베이스클래스로 하나씩 옮겨주세요!

👍 관련 이슈


기획의 어떤 부분을 구현 / 수정했는가 (굉장히 상세하게 적어주세요, 해당 커밋의 링크, 코드의 위치를 남겨주면 더욱 좋습니다.)

밑은 예시입니다.

시작되면서 스터디의 주 몇 회 정보를 유저가 실제로 선택한 일 수로 수정

  • StudyService의 createStudy 메서드에서 PeriodOfRound 를 받지 않도록 수정했습니다. 해당커밋
  • Study의 start 메서드에서 파라미터로 시작한 날짜를 받도록 구현하였습니다.
  • 날짜(월화수목금토일)를 뜻하는 Enum을 Study 패키지에 추가하였습니다.
  • flyway에서 해당 엔티티에 필요할 칼럼을 수정했습니다.

스터디가 더 이상 종료되지 않도록 수정

  • 상동

@s9hn s9hn added android💚 안드 refactor 리팩터링 fix 기능 코드 버그 수정 さんくん🐯 산군 labels Oct 31, 2023
@s9hn s9hn self-assigned this Oct 31, 2023
@RightHennessy RightHennessy self-requested a review October 31, 2023 06:18
Copy link
Collaborator

@RightHennessy RightHennessy left a comment

Choose a reason for hiding this comment

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

뀻.

Copy link
Collaborator

@no1msh no1msh left a comment

Choose a reason for hiding this comment

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

고생하셨습니다. 군산
현재 티어에 대한 기획은 수정의 여지가 있으니, 지금 상황에선
홈화면 설명을 유저가 이해할만하다면 충분할 것 같습니다.

@github-actions
Copy link

github-actions bot commented Oct 31, 2023

Test Results

9 tests   9 ✔️  0s ⏱️
3 suites  0 💤
3 files    0

Results for commit ec8fdd9.

♻️ This comment has been updated with latest results.

@s9hn s9hn changed the title [AN] 홈뷰 자잘한 리팩터링 [AN] 홈뷰 구조 리팩터링 Nov 4, 2023
Copy link
Member

@inseonyun inseonyun left a comment

Choose a reason for hiding this comment

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

LGTM

Comment on lines +8 to +19
abstract class BindingViewActivity<VB : ViewBinding>(
private val bindingInflater: (LayoutInflater) -> VB,
) : AppCompatActivity() {
private var _binding: VB? = null
val binding get() = _binding!!

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
_binding = bindingInflater(layoutInflater)
setContentView(binding.root)
}
}
Copy link
Member

Choose a reason for hiding this comment

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

good

Comment on lines +39 to +40
is HomeUiState.Loading -> {}
is HomeUiState.Failed -> {}
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
is HomeUiState.Loading -> {}
is HomeUiState.Failed -> {}
is HomeUiState.Loading -> Unit
is HomeUiState.Failed -> Unit

How about this?

when (userStudies.isEmpty()) {
true -> binding.tvHomeNoStudy.visibility = View.VISIBLE
false -> {
binding.tvHomeNoStudy.visibility = View.INVISIBLE
Copy link
Member

@inseonyun inseonyun Nov 6, 2023

Choose a reason for hiding this comment

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

How about View.GONE ?

Why use View.INVISIBLE?

}
val uiState: StateFlow<HomeUiState> = flow { emit(userStudyRepository.getUserStudies()) }
.map { HomeUiState.Success(it) }
.catch { HomeUiState.Failed }
Copy link
Member

Choose a reason for hiding this comment

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

awesome

@s9hn s9hn merged commit 9b60c15 into develop Nov 7, 2023
2 checks passed
@s9hn s9hn deleted the AN/feature/579-home branch November 7, 2023 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
android💚 안드 fix 기능 코드 버그 수정 refactor 리팩터링 さんくん🐯 산군
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

[AN] 홈뷰 수정
4 participants