Skip to content

diananareiko/RickAndMorty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

UIKit MVVM Clean Architecture Demo

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.

Overview

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.

MVVMPattern svg

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.

Project Structure

  • 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.


Features

  • 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.

Developed By

Diana Nareiko
Email: diananareiko8@gmail.com
GitHub: https://github.com/diananareiko

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages