Skip to content

Use this template to create application with MVVM-C + RxSwift

Notifications You must be signed in to change notification settings

anthony1810/UIKit_MVVMC_Template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MVVM-C Template for UIKit Apps

A template to create UIKit applications using the MVVM-C (Model-View-ViewModel-Coordinator) architecture pattern. Refer to this project for a full implementation: Anthony-Movie-App

Project Structure

Table of Contents

Introduction

This template provides a robust starting point for developing UIKit applications with a clear separation of concerns, ensuring maintainability and scalability. It leverages MVVM-C architecture to manage the app's flow and dependencies efficiently.

Technologies

This template utilizes the following technologies and frameworks:

  1. MVVM-C: Model - View - ViewModel - Coordinator
  2. RxSwift: Reactive programming in Swift
  3. Coordinator pattern: Navigation management
  4. DifferenceKit: High-performance diffing algorithm for data changes
  5. Moya/Reactive: Network abstraction layer
  6. Kingfisher: Image downloading and caching library
  7. Resolver: Dependency injection framework
  8. Lottie-iOS: Animation library for complex animations
  9. SwiftEntryKit: Presentation controller for UI elements

Project Structure

├── Models
│ ├── Entities
│ └── Data
├── Views
│ ├── ViewControllers
│ └── CustomViews
├── ViewModels
├── Coordinators
├── Services
│ ├── Network
│ └── Data
├── Resources
│ ├── Assets
│ └── Localizations
├── SupportingFiles
│ ├── AppDelegate.swift
│ └── Info.plist
└── Tests
├── UnitTests
└── UITests

Installation

To use this template, follow these steps:

  1. Clone the repository:
    git clone https://github.com/anthony1810/UIKIT_MVVMC_Template.git
  2. Navigate to the project directory: sh cd Template
  3. Install dependencies using CocoaPods: sh pod install
  4. Open the .xcworkspace file in Xcode: sh open Template.xcworkspace

Usage

Follow these steps to utilize the template:

  1. Add Models: Define your data models in the Models directory.
  2. Create Views: Design your user interface in the Views directory.
  3. Implement ViewModels: Write your business logic in the ViewModels directory.
  4. Setup Coordinators: Manage navigation flow in the Coordinators directory.
  5. Connect Services: Implement network and data services in the Services directory.

Refer to the included example project for detailed usage and examples.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/YourFeature).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/YourFeature).
  5. Open a pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Use this template to create application with MVVM-C + RxSwift

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages