Android library for reactive network and Internet connectivity monitoring using RxJava Observables.
ReactiveNetwork is an Android library that listens to network connection state and Internet connectivity using RxJava Observables. It provides reactive streams for monitoring changes in network availability, allowing apps to react dynamically to connectivity events. The library solves the problem of handling network state changes in a declarative, non-blocking manner, replacing traditional BroadcastReceiver-based approaches.
Android developers building apps that need to respond to network changes, such as offline-first applications, real-time data sync, or media streaming. It's particularly useful for teams already using RxJava in their codebase.
Developers choose ReactiveNetwork for its reactive approach, which simplifies complex network state management, reduces boilerplate code, and integrates seamlessly with other RxJava-based libraries. Its support for multiple observing strategies and Android versions ensures reliability across devices.
Android library listening network connection state and Internet connectivity with RxJava Observables
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Built on RxJava Observables and Singles, enabling easy chaining with operators and libraries like OkHttp and Retrofit, as shown in integration examples.
Uses automatic strategy selection (e.g., LollipopNetworkObservingStrategy for API 21+) to handle network monitoring reliably across different API levels.
Supports configurable strategies via InternetObservingSettings, including handling Walled Garden scenarios and custom hosts, as detailed in the documentation.
Automates network state monitoring with reactive streams, reducing manual BroadcastReceiver setup and handling edge cases like memory leaks when using Application Context.
Tightly coupled to RxJava, adding library overhead and requiring reactive programming knowledge, which can be a barrier for teams using other async approaches.
Continuous Internet checks involve periodic socket connections (default every 2 seconds), consuming data and battery, as warned in the README's usage notes.
WiFi access point and signal strength monitoring were removed in version 0.4.0 and moved to a separate library (ReactiveWiFi), limiting built-in functionality.
Advanced features like custom Internet observing strategies require detailed setup with InternetObservingSettings, increasing initial complexity for basic use cases.