A collection of iOS sample apps showcasing and comparing different architectural patterns like MVC, MVVM, VIPER, and RIBs.
ios-architecture is a GitHub repository containing a collection of sample iOS applications that implement various architectural patterns. It serves as an educational resource for developers looking to understand and compare different approaches to structuring iOS apps, such as MVC, MVVM, VIPER, and RIBs. Each example is a working app that demonstrates the key concepts and trade-offs of each architecture.
iOS developers, particularly those who are learning about software architecture, transitioning between architectural patterns, or seeking reference implementations for specific patterns like MVVM with RxSwift or VIPER.
It provides hands-on, runnable examples that go beyond theoretical explanations, allowing developers to see exactly how different architectures are implemented in real iOS projects. The side-by-side comparisons help in making informed decisions about which pattern to adopt for a given project.
A collection of iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs and many others
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes runnable examples of MVC, MVP, MVVM (with RxSwift and closures), VIPER, and RIBs, allowing for direct comparison across patterns.
Features complex apps like a TMDb client to show how architectures handle navigation and multiple modules in real-world scenarios.
Provides multiple MVVM implementations with RxSwift, illustrating data binding and state management using modern reactive patterns.
Each example has a dedicated README explaining the architecture, though some are incomplete, aiding in understanding core concepts.
Many READMEs are labeled 'in progress', such as for VIPER and RIBs, limiting their educational value and usability.
Relies on Swift 4.2, which misses newer language features and may not align with current iOS development standards.
Requires cloning the repo and running 'pod install' for each example, adding overhead compared to integrated tutorials or templates.
Focuses solely on architectural patterns without covering related aspects like testing, dependency injection, or SwiftUI adaptations.