LeeJaeHyeon05 / Kotlin-Study-LOL

3 stars 4 forks source link

2022년 1월 15일 모임 #121

Closed asonetu closed 2 years ago

asonetu commented 2 years ago
mmol93 commented 2 years ago
  1. EventBus의 동작 방식 분식(EventBus.kt)

    • viewModel에서 setter와 getter를 따로 두고 데이터를 입력하는 방식과 유사함
    • events는 private라 밖에서 참조할 수 없지만 post()를 통해 emit으로 데이터 방출 가능
    • mutableEvents는 events의 getter로 읽기 전용 sharedFlow
    • subscribe()를 통해 필터링을 한다 -> 여러 장소에서 post()를 통해 emit을 해도 subscribe()를 통해 받을 데이터(=클래스)를 정의하면 해당 데이터가 emit 되었을 때만 collect를 한다
    • mutableEvents.filter { it is T } 는 Flow 타입임
    • 이를 map을 통해 Flow 타입으로 바꿔서 return한다
    • 즉, filter를 통해 해당 타입의 데이터만 거르고 제네릭을 통해 확실해 해당 클래스의 Flow로 반환한다
    • 참고 자료: https://keykat7.blogspot.com/2021/07/kotlin-generic.html
  2. EventBus에서 filter를 하여 클래스를 구별하는 이유 분석

    • filter를 통해 어떤 데이터만 collect할 것인가 결정할 수 있음
  3. TierFragment에서 챔피언 클릭 시 나오는 항목이 ChampionDetail이 아니라 Build였음...

위 내용 중에 틀린 부분이 있으면 가르쳐주시면 감사하겠습니다~