What is Epoxy?

Epoxy is an Android library for building complex screens in a RecyclerView. Models are automatically generated from custom views, databinding layouts, or Litho components via annotation processing. These models are then used in an EpoxyController to declare what items to show in the RecyclerView.

This abstracts the boilerplate of view holders, diffing items and binding payload changes, item types, item ids, span counts, and more, in order to simplify building screens with multiple view types. Additionally, Epoxy adds support for saving view state and automatic diffing of item changes.

We developed Epoxy at Airbnb to simplify the process of working with RecyclerViews, and to add the missing functionality we needed. We now use Epoxy for most of the main screens in our app and it has improved our developer experience greatly.

Overview

  • Pricing: Free
  • Resource Link: https://github.com/airbnb/epoxy
  • Resource Maker on Twitter: Airbnb
  • Mobile Platform Destination: Android Apps
  • Mobile Platform Support: Native Android
  • Programming Languages: Java
  • Gradle: com.airbnb.android:epoxy:3.x.y