# jakewharton/rxbinding

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jakewharton-rxbinding).**

9,578 stars · 964 forks · Kotlin · Apache-2.0 · archived

## Links

- GitHub: https://github.com/JakeWharton/RxBinding
- awesome-repositories: https://awesome-repositories.com/repository/jakewharton-rxbinding.md

## Description

RxBinding is an Android UI binding library that transforms standard view listeners into RxJava observables. It serves as a bridge and reactive wrapper, converting user interactions and widget states into reactive data flows.

The project enables the implementation of reactive programming patterns across Android system interactions. By treating UI interactions as data streams, it allows for the asynchronous handling of events to decouple the view layer from business logic.

The library covers the conversion of UI events into streams, the management of widget states to trigger application updates, and the use of functional transformations to map raw input events into high-level logic.

## Tags

### Mobile Development

- [Reactive Programming Patterns](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-development/reactive-programming-patterns.md) — Implements reactive programming patterns for Android UI development by connecting widgets to RxJava streams.
- [UI Event Libraries](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-libraries/ui-event-libraries.md) — Serves as a library for observing and handling Android UI interaction events via RxJava observables.
- [RxJava Android Bindings](https://awesome-repositories.com/f/mobile-development/rxjava-android-bindings.md) — Binds RxJava to Android UI widgets to transform user interactions into reactive data flows.

### Software Engineering & Architecture

- [Reactive Event Wrappers](https://awesome-repositories.com/f/software-engineering-architecture/asset-wrapping-modules/reactive-event-wrappers.md) — Converts traditional UI listener callbacks into reactive streams that emit values upon user interaction.
- [Reactive Programming Libraries](https://awesome-repositories.com/f/software-engineering-architecture/reactive-programming-libraries.md) — Provides a reactive wrapper for Android system interactions and widget states.
- [Event-to-State Transformations](https://awesome-repositories.com/f/software-engineering-architecture/event-to-state-transformations.md) — Provides mechanisms to transform raw UI input event streams into high-level application states.
- [Lifecycle-Aware Async Wrappers](https://awesome-repositories.com/f/software-engineering-architecture/memory-usage-analysis/memory-leak-prevention/lifecycle-aware-async-wrappers.md) — Links the lifetime of observable streams to Android view visibility to prevent memory leaks.
- [Observable State Management](https://awesome-repositories.com/f/software-engineering-architecture/observable-state-management.md) — Uses observable state management to trigger automatic updates or side effects based on UI component changes.
- [Push-Based Data Propagation](https://awesome-repositories.com/f/software-engineering-architecture/push-based-data-propagation.md) — Implements an asynchronous push mechanism to propagate UI state changes to application logic.

### User Interface & Experience

- [Event Handling](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling.md) — Provides an architecture for handling UI events asynchronously to decouple the view layer from business logic.
- [Native Event Streams](https://awesome-repositories.com/f/user-interface-experience/native-event-streams.md) — Converts native Android widget interaction events into continuous observable data streams. ([source](https://github.com/jakewharton/rxbinding#readme))
- [Reactive User Interfaces](https://awesome-repositories.com/f/user-interface-experience/reactive-user-interfaces.md) — Enables building responsive Android interfaces by treating user interactions as transformable data streams.

### Web Development

- [Callback-to-Stream Adapters](https://awesome-repositories.com/f/web-development/legacy-stream-adapters/callback-to-stream-adapters.md) — Wraps imperative Android view listeners into reactive observable sequences using stream adapters.

### Part of an Awesome List

- [Developer Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/developer-utilities.md) — Reactive bindings for Android UI widgets.
