240415 TIL RecyclerView 성능 개선하기

DoDoBest

·

2024. 4. 15. 22:14

RecyclerView 성능 개선하기

RecyclerView의 ViewHolder에서 입력된 데이터에 따라 View를 inflate하도록 구현했는데, inflate한 View들을 재활용하도록 수정함으로써 스크롤 시의 버벅거림을 해결했습니다.

https://github.com/DoTheBestMayB/PlzStopRe/issues/5

 

경로 검색 결과 화면 성능 개선 · Issue #5 · DoTheBestMayB/PlzStopRe

현재 상황 경로 검색 결과 화면에서 CosntraintLayout이 중첩된 깊이가 매우 깊습니다. S23 울트라에서 네이버 지도 앱과 PlzStop 앱 화면을 비교한 결과, 측정, 레이아웃 시간이 압도적으로 오래 걸렸고

github.com

 

 

ViewHolder가 보이지 않게 되면 무조건 재활용할 수 있는 View Pool에 들어가는 것이 아니라 캐싱된 상태로 유지되며, 다시 보이게 될 경우 캐싱된 ViewHolder를 onBind 호출 없이 바로 보여준다는 것을 알게 됐습니다.

 

참고자료

https://hodie.tistory.com/113#RecyclerView%EC%9D%98%20%EB%8F%99%EC%9E%91%20%EC%9B%90%EB%A6%AC-1

 

[Android] RecyclerView Deep Dive - 1. RecyclerView 정의와 동작원리 및 생명주기

개요 이전에 RecyclerView에 대한 글을 정리한 적이 있었다. 당시에는, RecyclerView의 등장 의의와 RecyclerView를 사용하는 경우에 구현해야 하는 구현부에 대한 내용을 중심으로 작성했었다. 2022.12.22 - [I

hodie.tistory.com

https://munseong.dev/android/recyclerviewpool/

 

[Android] RecyclerViewPool로 사용자 경험 개선하기

개요 구글 플레이, E-commerce, 넷플릭스와 같은 OTT 플랫폼뿐만 아니라 카테고리별대로 UI를 보여줄때 아래와 같이 중첩된 RecyclerView를 종종 보곤한다. 세로로 구성되어 있는 부모 RecyclerView 안에 가

munseong.dev