Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Android
  3. OneAdapter

OneAdapter

MITKotlin2.1.6

A modular, viewholderless adapter for Android RecyclerView with built-in diffing, paging, emptiness, selection, and event hooks.

GitHubGitHub
467 stars43 forks0 contributors

What is OneAdapter?

OneAdapter is a library for Android that simplifies RecyclerView adapter creation by eliminating the need to write ViewHolders and boilerplate adapter code. It provides a modular system with built-in diffing, paging, empty states, selection, and event handling, allowing developers to define list behavior declaratively. The library handles performance optimizations like background diffing automatically.

Target Audience

Android developers building complex, interactive lists with RecyclerView who want to reduce boilerplate and avoid common adapter pitfalls. It's especially useful for teams adopting Kotlin and looking for a modern, declarative approach to list management.

Value Proposition

Developers choose OneAdapter for its modular, viewholderless architecture that drastically reduces adapter code while providing powerful out-of-the-box features like diffing, paging, and selection. Its Kotlin-first DSL and performance optimizations make it a robust alternative to writing custom RecyclerView adapters.

Overview

A Viewholderless Adapter for RecyclerView, who supports builtin diffing, states (paging, empty...), events (clicking, swiping...), and more.

Use Cases

Best For

  • Implementing complex RecyclerViews with multiple view types and interactive elements
  • Adding pagination with load-more indicators and background data fetching
  • Handling empty states and error views without conditional adapter logic
  • Enabling single or multiple item selection with custom triggers and UI feedback
  • Attaching click, long-click, and swipe gestures to list items with custom animations
  • Optimizing list performance with automatic DiffUtil and background thread processing

Not Ideal For

  • Android projects committed to Java without plans to adopt Kotlin
  • Simple list implementations with static data and no interactive features like paging or selection
  • Teams already using and satisfied with alternative RecyclerView libraries like Epoxy or Groupie

Pros & Cons

Pros

Modular Architecture

ItemModules enable reusable, testable components for different view types, reducing adapter boilerplate and improving code maintainability, as demonstrated in the example with separate modules for messages and stories.

Built-in Performance Optimizations

Automatic DiffUtil on a background thread ensures efficient list updates without manual implementation, requiring only the Diffable interface for models to handle content comparisons.

Comprehensive Feature Set

Includes out-of-the-box modules for paging, emptiness, selection, and event hooks, providing solutions for common RecyclerView challenges like load-more indicators and swipe gestures.

Kotlin-First DSL

Dedicated DSLs for configuration make the API declarative and concise, enhancing developer experience in Kotlin projects, as seen in the new version 2.0.0 API changes.

Cons

Evolving API with Breaking Changes

The README explicitly warns that library interfaces may change as it matures, leading to potential migration efforts and instability, especially noted during the ownership transition.

Kotlin-Centric Design

Heavy reliance on Kotlin DSLs makes the library less accessible for Java-only projects, requiring Kotlin adoption or less intuitive workarounds, despite some Java support.

Steeper Learning Curve

The modular approach introduces concepts like modules, hooks, and states, which can be overwhelming for simple use cases compared to standard RecyclerView adapters.

Frequently Asked Questions

Quick Stats

Stars467
Forks43
Contributors0
Open Issues7
Last commit2 years ago
CreatedSince 2018

Tags

#kotlin-dsl#adapter#paging#recyclerview#android#kotlin-library#android-ui#android-library#kotlin-android#ui-components#mobile-development#multiselect#performance

Built With

A
Android
K
Kotlin

Included in

Android12.0k
Auto-fetched 15 hours ago

Related Projects

Litho (By Facebook)Litho (By Facebook)

A declarative framework for building efficient UIs on Android.

Stars7,765
Forks763
Last commit6 days ago
TapTargetViewTapTargetView

An implementation of tap targets from the Material Design guidelines for feature discovery.

Stars5,461
Forks591
Last commit1 year ago
AndroidStaggeredGridAndroidStaggeredGrid

An Android staggered grid view which supports multiple columns with rows of varying sizes.

Stars4,735
Forks1,107
Last commit3 years ago
CardslibCardslib

Android Library to build a UI Card

Stars4,621
Forks1,170
Last commit4 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub