[Kotlin Android] RecyclerView 어댑터의 데이터 빠르게 바꾸기 - ListAdapter와 DiffUtil 사용하기

• RecyclerView에서 어댑터가 데이터 리스트의 변경사항을 UI에 반영할 때, 한 번에 많은 아이템을 업데이트하면 지연 시간이 발생하고 화면 깜빡임 현상이 발생할 수 있다. 이를 해결하기 위해 Android에서는 DiffUtil을 제공하며, 이는 현재 데이터 리스트와 교체될 데이터 리스트를 비교하여 실제로 변경이 필요한 데이터만 업데이트하는 기능을 한다.
• ListAdapter는 DiffUtil을 활용하여 리스트를 업데이트하는 기능을 추가한 어댑터로, DiffUtil 기능에 대한 콜백 기능 클래스만 추가로 구현하면 된다. 이를 통해 생산성과 효율성을 높일 수 있다. DiffUtil을 사용하기 위해서는 DiffUtil.Callback 기능을 구현해야 하며, 이는 아이템의 고유 ID값을 비교하는 'areItemsTheSame'과 아이템 내용을 비교하는 'areContentsTheSame' 두 가지 함수를 구현해야 한다.
• DiffUtil.ItemCallback을 사용하여 아이템이 같은지, 내용이 같은지 비교하는 콜백 클래스를 구현하였습니다. 이를 통해 리사이클러뷰의 성능을 향상시킬 수 있습니다.
• ListAdapter를 사용하여 데이터 클래스를 받고, 어댑터 내에서 데이터 리스트를 정의하지 않고 리스트 자체에서 데이터 리스트를 정의하였습니다. 이를 통해 getItemCount 함수를 구현하지 않아도 되며, getItem, getCurrentList, submitList 등의 메소드를 사용할 수 있습니다.

북마크
공유하기
신고하기