An open API service indexing awesome lists of open source software.

https://github.com/silkodenis/swift-combine-store

A lightweight Swift package for state management in SwiftUI applications using Combine, designed for unidirectional data flow (UDF) architectures with data-driven side-effects.
https://github.com/silkodenis/swift-combine-store

combine data-driven feedback-loop redux side-effect store swift-package-manager swiftui udf unidirectional-data-flow

Last synced: 4 months ago
JSON representation

A lightweight Swift package for state management in SwiftUI applications using Combine, designed for unidirectional data flow (UDF) architectures with data-driven side-effects.

Awesome Lists containing this project

README

        

[![License](https://img.shields.io/github/license/silkodenis/combine-redux-store.svg)](https://github.com/silkodenis/combine-redux-store/blob/main/LICENSE)
![swift](https://github.com/silkodenis/combine-redux-store/actions/workflows/swift.yml/badge.svg?branch=main)

# Combine Store

Combine Store is a lightweight package for state management in SwiftUI and Combine applications, designed for unidirectional data flow (UDF) architectures. It provides a unified state management mechanism along with support for data-driven side effects.

## Key Features

- **State Management:** Utilizes a unified model for state and actions similar to Redux.
- **Asynchronous Effects:** Supports asynchronous data-driven side-effects via Feedback mechanisms, ensuring that effects are triggered based on state changes.
- **Combine Support:** Leverages powerful data stream handling and reactive programming with Combine.

## Installation

### Requirements

- **Swift 5.1**+
- **Xcode 11**+
- **iOS**: iOS 13.0+
- **macOS**: macOS 10.15+
- **watchOS**: watchOS 6.0+
- **tvOS**: tvOS 13.0+

### To add the package to your project, use Swift Package Manager:

1. Open Xcode and select “File” > “Add Packages…”
2. Enter the URL of the package repository.
3. Follow the instructions to complete the installation.

## Usage Example

- [SwiftUI App](https://github.com/silkodenis/swiftui-moviesdb-redux-app)

## License
This project is licensed under the [Apache License, Version 2.0](LICENSE).