EasyAdapter
This project evolved into module easyadapter from Surf Android Standard repository (Documentation in Russian). It contains modules, which is used for developing Android projects by mobile studio Surf.
This project demonstrates simple approach for implementation complex lists, based on RecyclerView.
You don't need call methods notify...(), beŃause it is called automatically when you set data. It also works with mutable data objects, unlike android.support.v7.util.DiffUtil. You also don't need extend RecyclerView.Adapter.
You need only create ItemController for each type of list items and describe order of elemets in Activity/Fragment. ItemController incapsulates all interactions with list item, so it is very easy for reading, modifying and reusing.
Project contains template of ItemController for Android Studio.
There is article with explanation of this approach.(Russian language)
A big thanks to Surf developers, especially to Fedor Atyakshin , for their help in developing.
Example 1 - Six types of elements:
Code in activity:
Example of ItemController:
Example 2 - Loading data and pagination:
Placeholders are also elements of RecyclerView
Code in activity:
Code in presenter for pagination: