UIKit MVVM Clean Architecture + RXFlow and Swinject Framework is a project created to demonstrate how to build an app using the MVVM architecture with the UIKit framework.
The architecture follows Clean Architecture principles to ensure a clear separation of concerns and improved maintainability.
- Dependency Injection (DI) is implemented using the Swinject framework.
- Scene coordination and navigation are managed using the RXFlow library.
- Data is fetched from the free Rick and Morty API, which provides a wealth of character, location, and episode information.
MVVM (Model-View-ViewModel) is a design pattern that helps separate user interface (UI) logic from business logic and behavior, making the application more modular, testable, and maintainable.
This project demonstrates:
- Using Swinject for Dependency Injection (DI): Simplifies object creation and improves modularity.
- Implementing RXFlow for Scene Coordination: Ensures reactive, declarative, and flexible navigation.
- Applying Clean Architecture Principles: Provides a robust structure with clearly defined layers for handling business logic, data, and UI.
- Fetching data from Rick and Morty API: Uses a public API to demonstrate data handling and presentation.
-
APIClient.swift
Handles networking and API requests to fetch data from the Rick and Morty API. -
Model.swift
Defines the data structures used throughout the application. -
ViewModel.swift
Contains the logic for transforming model data into a format suitable for the views. -
AppFlow.swift
Manages scene coordination and navigation using the RXFlow library. -
AppServiceAssemblies.swift
Configures and manages dependency injection using the Swinject framework.
- UIKit-based Views: Built with UIKit to maintain flexibility for custom UI designs.
- Reactive Programming: Implements reactive principles using RxSwift for binding and event handling.
- Clean Architecture: Clearly separates UI, business logic, and data layers.
- Flexible Dependency Management: Uses Swinject for easy dependency resolution and injection.
- Navigation Coordination: Employs RXFlow for a structured and reactive navigation flow.
- API Integration: Fetches and displays character, episode, and location data from the Rick and Morty API.
Diana Nareiko
Email: diananareiko8@gmail.com
GitHub: https://github.com/diananareiko