A holistic iOS development framework combining Redux state management with MVVM architecture for scalable apps.
Tempura is an iOS framework that combines Redux-style state management with MVVM architecture to build scalable and maintainable apps. It provides a structured approach where the app state is centralized, UI updates are automatic, and navigation is declarative. The framework solves the complexity of managing state and UI synchronization in large iOS applications.
iOS developers building medium to large-scale applications who need a predictable state management solution and scalable architecture. Teams looking to enforce consistency and improve testability in their iOS codebase.
Developers choose Tempura for its holistic approach that reduces boilerplate, ensures automatic UI-state synchronization, and provides built-in tools like snapshot testing. Its integration with Katana for Redux-like state management and MVVM patterns offers a battle-tested solution used in production apps with millions of users.
A holistic approach to iOS development, inspired by Redux and MVVM
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Katana for Redux-inspired state management, ensuring all state changes are explicit and traceable through defined actions, reducing side effects and bugs.
ViewControllers automatically sync the UI with state changes, eliminating manual update code and potential inconsistencies, as shown in the sample code where UI updates are handled automatically.
Built-in UI testing system supports screenshot-based tests across multiple devices and languages, with features like LocalFileURLProtocol for mocking remote resources during tests.
Navigation is configured declaratively with routes via the RoutableWithConfiguration protocol, simplifying complex app flows and making navigation logic more maintainable.
Enforces a strict Redux-MVVM pattern, which can be cumbersome for simple apps and limits flexibility, as it requires defining state, actions, and view models even for minimal use cases.
The maintainers have shifted to The Composable Architecture, indicating reduced future development and potential for breaking changes, with deprecated unsafe methods highlighted in the README.
Primarily designed for UIKit, so integrating with SwiftUI requires additional work and may not leverage SwiftUI's native state management, making it less suitable for modern iOS development trends.