A Swift framework for building reactive data flows with built-in network, parsing, and persistence layers.
Reactor is a Swift framework that streamlines the data layer in iOS apps by providing a reactive architecture for handling network requests, parsing responses, and persistence. It solves the common problem of repetitive boilerplate code when implementing data flows that check local storage first, then fetch from the network, and finally save results.
iOS developers building apps with complex data flows, especially those using ReactiveCocoa and needing standardized patterns for network, parsing, and persistence.
Developers choose Reactor because it reduces boilerplate, enforces decoupling, and offers a flexible, composable infrastructure that can be customized or extended while providing a solid default flow for rapid prototyping.
Powering your RAC architecture
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Reactor intrinsically separates network, parsing, and persistence logic, reducing component coupling as highlighted in the pros section of the README.
It abstracts away common data flow boilerplate for the standard fetch-persistence-network pattern, allowing developers to focus on model logic with minimal code.
Provides ready-to-use infrastructure, enabling quick creation of the entire Model layer for prototypes or demos, as noted in the pros for speeding up development.
Offers configurable options like persistence settings, reachability checks, and parsing strictness via FlowConfiguration, detailed in the configuration section.
Designed around a specific persistence-first, network-fallback flow; the README admits it's not ideal for unusual flows, limiting adaptability.
Built solely on ReactiveCocoa, which adds library overhead and can be a barrier for teams using other reactive frameworks or avoiding additional dependencies.
Integrating with third-party dependencies like Alamofire or Realm requires manual wrapping and flow composition, increasing setup effort as described in the 'Using 3rd Party Dependencies' section.