/SwiftUI-Clean-Architecture

⚡️ Architecture IOS app with SwiftUI ⚡️. 🍭 Clean Architecture - 🌸 Reactive Programming (RxSwift) - 🤟SOLID - 🔆 Resolver (DI) - 🔥 MVVM - 🌰 MVI

Primary LanguageSwift

SwiftUI Architectures: Clean Architecture, MVVM / MVI

This guide encompasses best practices and recommended architecture for building robust, high-quality apps

🚀 Introduction

⚡️ Dependencies

  • RxSwift : Rx is a generic abstraction of computation expressed through Observable interface, which lets you broadcast and subscribe to values and other events from an Observable stream
  • Alamofire : Alamofire is an HTTP networking library written in Swift
  • Kingfisher : Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web. It provides you a chance to use a pure-Swift way to work with remote images in your next app.
  • Resolver : An ultralight Dependency Injection / Service Locator framework for Swift 5.x on iOS

🚀 Module Structure

Clean Architecture There are 3 main modules to help separate the code. They are Data, Domain, and Presentaion.

  • Data contains Local Storage, APIs, Data objects (Request/Response object, DB objects), and the repository implementation.
  • Domain contains UseCases, Domain Objects/Models, and Repository Interfaces
  • Presentaion contains UI, View Objects, Widgets, etc. Can be split into separate modules itself if needed. For example, we could have a module called Device handling things like camera, location, etc.

🚀 Screenshoots

Default Search Search keyword (ex: flo)