Everyday Growing Engineer 2022. 7. 29. 16:20

1. View Binding

  • ListView : 최초 생성이나 스크롤 시 아이템을 생성할 때마다 뷰바인딩을 해서 성능 저하가 일어난다.
  • RecyclerView : ViewHolder 패턴을 강제로 구현하게 해서 뷰 바인딩을 한 번만 해준다. 이 후 아이템을 생성할 때 바인딩된 뷰 객체를 재활용한다.

ViewBinding 이란??

2. RecyclerView VS ListView 

  RecyclerView ListView
ViewHolder ViewHolder 패턴 이용 ViewHolder 패턴 이용할 필요 X
Item Layout 가로/세로/지그재그 모두 지원 세로만 지원
Item Animation 아이템 애니메이션 처리 클래스 O 아이템 애니메이션 처리 클래스 X 
Adapter 데이터 제공을 위해 직접 구현 다양한 소스에 대한 어댑터 존재
Decoration 많은 구분선 설정  쉽게 구분 가능
Click Event 개별 터치 이벤트 관리O, 클릭 처리 기능 X  클릭 이벤트에 바인딩 하기위한 인터페이스 존재

리스트뷰와 리사이클러뷰는 모두 스크롤 가능한 리스트 형식의 레이아웃을 구현할 때 사용. 리스트뷰는 스크롤할 때 나오는 아이템을 끊임없이 새로 만들어 메모리 성능에 부담이 갈 수 있음. 반면, 리사이클러뷰는 처음 만들어지는 아이템의 개수는 정해져있고, 뷰홀더를 통해 들어가는 뷰의 재사용을 가능하게 함.

 

View Holder 란?

View를 보관하는 객체이다.
ListView와 RecyclerView는 inflate를 최소화하기 위해 View를 재활용하는데, 이 때 성능 저하를 방지하기 위해 ItemView의 각 요소를 바로 엑세스 할 수 있도록 저장해두고 사용하기 위해 사용한다.