4 "summary": "Simplest architecture for RxSwift. State + feedback loops.",
5 "description": "Simplest architecture for RxSwift. State + feedback loops.\n\n* Simple\n * If the system doesn't have state -> congrats, you have either a pure function or an observable sequence\n * It the system does have state, here we are :)\n * Interaction with that state is by definition a feedback loop.\n * => It's just state + CQRS\n* Straightforward\n * if it's state -> State\n * if it's a way to modify state -> Mutation\n * it it's an effect -> encode it into part of state and then design a feedback loop\n* Declarative\n * System behavior is first declaratively specified and effects begin after subscribe is called => Compile time proof there are no \"unhandled states\"\n* Debugging is easier\n * A lot of logic is just normal pure function that can be debugged using Xcode debugger, or just printing the commands.\n\n* Can be applied on any level\n * [Entire system](https://kafka.apache.org/documentation/)\n * application (state is stored inside a database, CoreData, Firebase, Realm)\n * view controller (state is stored inside `system` operator)\n * inside feedback loop (another `system` operator inside feedback loop)\n* Works awesome with dependency injection\n* Testing\n * Reducer is a pure function, just call it and assert results\n * In case effects are being tested -> TestScheduler\n* Can model circular dependencies\n* Completely separates business logic from effects (Rx).\n * Business logic can be transpiled between platforms (ShiftJS, C++, J2ObjC)",
6 "homepage": "https://github.com/NoTests/RxFeedback.swift",
12 "Krunoslav Zaher": "krunoslav.zaher@gmail.com"
21 "git": "https://github.com/NoTests/RxFeedback.swift.git",
24 "source_files": "Sources/**/*.swift",
25 "frameworks": "Foundation",