DiffUtil

Intro

DiffUtil is a utility class by Google that calculates the difference between two lists and outputs a list of update operations that converts the first list into the second one.

Problem

Say, we use room database. Now we add one item to room which has previous n items. So after adding it should reflect in recycler view. Now, what recycler view does is that it renders all items.

This is a performance issue.

Solution

There are 2 ways 2 implement Diff Utils:

1. Recycler View Adpater

  • We have to implement Diff Util.

2. List Adapter

  • By default Diff Util is implemented.
  • Automatically use Diff Util, execute difference in background.

Both are implemented in the code. For 1 check ProgrammingListAdapter and for 2 check ProgrammingRecyclerViewAdapter.

Happy coding ?‍?

Demo

GitHub

View Github