A comprehensive iOS example app demonstrating Domain-Driven Design and Clean Architecture with modular SwiftUI and TCA implementations.
CleanArchitectureRxSwift is an example iOS application that demonstrates how to implement Domain-Driven Design and Clean Architecture principles in modern Swift development. It provides a practical reference for structuring iOS apps with proper modularization, separation of concerns, and maintainable architecture patterns. The example app integrates with Movies and Anime APIs while showcasing different UI architecture approaches.
iOS developers and teams looking to implement scalable, maintainable architecture patterns in their Swift applications. It's particularly valuable for developers transitioning to Domain-Driven Design or Clean Architecture who need concrete implementation examples.
Developers choose this project because it provides a complete, production-ready example with multiple UI pattern implementations (MVVM and TCA) within a well-structured architecture. Unlike theoretical explanations, it offers working code that demonstrates how to properly separate concerns across domain, feature, application, and platform layers.
Example of Modern Domain Driven modularisation of iOS apps
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Clearly separates domain, feature, application, and platform layers, ensuring business logic is independent and maintainable, as detailed in the layered architecture diagrams.
Demonstrates both MVVM with SwiftUI and TCA (The Composable Architecture), allowing developers to evaluate and choose patterns based on project needs, as shown in the Features layer implementation.
Enables faster development cycles with Xcode Previews and feature-specific example apps by decoupling dependencies, reducing build times for day-to-day tasks.
Integrates Tuist for project generation and @Dependency for injection, showcasing current best practices in iOS development and dependency management.
Requires installation and configuration of Tuist, adding an extra tooling step that can be a barrier for teams not already using it, as noted in the setup instructions.
The strict layered approach introduces boilerplate code and abstraction that might be excessive for simpler apps, potentially slowing initial development.
Heavily relies on third-party libraries like TCA and @Dependency, which may not fit all team preferences or existing codebases, creating vendor lock-in risks.