Elements
Menu toggle
latest: v0.5.0 GitHub

Elements

Elements is collection of modular elements for RecyclerView lists, alternative to Google’s Paging library, designed in Kotlin with separation of concerns, modularity and testability in mind.

  • Separation of concerns: we split the model component into Sources, and the UI component into Presenters. [docs]
  • Simplicity: No need to extend Adapters, ViewHolders or all that Paging lib. boilerplate.
  • Reusability: as a result, each Source and Presenter is an independent piece of code that can be reused.
  • Modularity: let the adapter accept multiple Sources and Presenters. [docs]
  • Testability: a consequence of the above, each component can be independently tested.
  • Coordination: let Sources declare dependencies among them, in a CoordinatorLayout.Behavior fashion. [docs]
  • Paging: built-in concept of Page. [docs]
  • Integration with Arch components: heavy use of LiveData and Lifecycles, extensions for data binding.
  • Animations: give Presenterss fine grained control over how to animate each item [docs]

Get started

Get started with install info or start reading the in-depth documentation.

If you are curious about how Elements works in practice, take a look at the demo app in the app directory in GitHub.

Support

If you like the project, use it with profit, and want to thank back, please consider donating or becoming a sponsor.