인프런 커뮤니티 질문&답변

jminie님의 프로필 이미지
jminie

작성한 질문수

냉동코더의 알기 쉬운 Modern Android Development 입문

Practice6-Room 응답을 flow로 변환하기 (Flow, StateFlow, Extension functions)

collect와 collectLatest

작성

·

272

0

collect와 collectLatest의 차이를 공부해보았는데 각각의 장단점이 있는 것 같습니다. 

collect의 경우 중간에 데이터가 어떤 이유로 데이터를 처리하는데 시간이 오래 걸린다면 그 이후에 데이터를 받을 수 없다는 단점이 있고 

collectLatest의 경우 이전 데이터 처리가 끝나지 않더라도 새로운 데이터가 들어오면 데이터를 새로 받아서 그런일은 없지만 그렇게 된다면 마지막 데이터만 들어오고 중간 데이터를 받을 수 없다는 단점이 있는 것 같습니다.

그렇다면 실무에서는 어떤 함수를 쓰는 것을 선호하는지 궁금합니다.

답변 2

1

jminie님의 프로필 이미지
jminie
질문자

항상 질문한 것 이상의 완벽한 답변을 주셔서 감사합니다.

1

냉동코더님의 프로필 이미지
냉동코더
지식공유자

collect와 collectLatest는 제대로 이해하신 것이 맞습니다. 어느쪽이 우월한 것이 아니라 기능이 다른 것이므로 사용목적에 맞게 분류하여 사용하시면 됩니다.

예를 들어 구글의 sunflower 프로젝트의 경우 PlantListViewModel 클래스에서 savestate에 저장해야 하는 값은 collect로 수집하고, GalleryFragment 클래스에서 이미지를 표시하는 부분은 collectLatest로 수집하는 것을 보실 수 있습니다.

잘 만들어진 다른 오픈소스 프로젝트에서 어떤 식으로 사용하는지를 더 참고해 보시면 좋을 것 같습니다.

 

jminie님의 프로필 이미지
jminie

작성한 질문수

질문하기