Katana is a modern Swift framework for writing iOS applications' business logic that are testable and easy to reason about. Katana is strongly inspired by Redux. In a few words, the app state is entirely described by a single serializable data structure, and the only way to change the state is to dispatch a StateUpdater. A StateUpdater is an intent to transform the state, and contains all the information to do so. Because all the changes are centralized and are happening in a strict order, there are no subtle race conditions to watch out for. We feel that Katana helped us a lot since we started using it in production. Our applications have been downloaded several millions of times and Katana really helped us scale them quickly and efficiently. Bending Spoons's engineers leverage Katana capabilities to design, implement and test complex applications very quickly without any compromise to the final result.
Features
- Your entire app State is defined in a single struct
- Modern Swift framework for writing iOS applications' business logic
- The app State can only be modified by a StateUpdater
- The Store contains and manages your entire app State
- You can ask the Store to be notified about every change in the app State
- Updating the application's state using pure functions is nice and it has a lot of benefits