{"repo":"tuan188/CleanArchitecture","free":true,"listed":false,"github":"https://github.com/tuan188/CleanArchitecture","clone":"git clone https://github.com/tuan188/CleanArchitecture.git","description":"Clean Architecture with Combine + SwiftUI","language":"Swift","stars":374,"topics":["ios","swift","combine","functional-reactive-programming","mvvm","clean-architecture","protocol-oriented-programming","unit-testing","swiftui","dto"],"license":"MIT","category":"mobile-apps","readme_excerpt":"iOS Clean Architecture This project demonstrates the implementation of a repository list using Clean Architecture, MVVM, and Combine in Swift. Table of Contents - Clean Architecture - Table of Contents - Introduction - Installation - Architecture - Domain Layer - Data Layer - UI Layer - Dependency Injection - Unit Tests - Xcode Template - Conclusion - License - Related Introduction CleanArchitecture is an example application built to demonstrate the usage of Clean Architecture along with MVVM and Combine frameworks in Swift. The application fetches and displays a list of repositories from a remote API. Installation To install the necessary files using Swift Package Manager, follow these steps: 1. Open your Xcode project. 2. Select File Add Packages... 3. Enter the URL of this repository: https://github.com/tuan188/CleanArchitecture 4. Select the appropriate package options and add the package to your project. Alternatively, you can add the following dependency to your Package.swift file: Architecture The architecture is structured into three main layers: 1. Data Layer : Responsible for data retrieval and manipulation: Gateway Implementations + API (Network) + Database 2. Domain Layer : Contains business logic and use cases: Entities + Use Cases + Gateway Protocols 3. UI/Presentation Layer : Manages user interface and user interactions: ViewModels + ViewControllers/Views + Navigator Each layer has a clear responsibility and communicates with other layers via protocols and Comb","default_branch":null,"files":null,"tree":[],"storefront":"/r/tuan188","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tuan188/CleanArchitecture/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}