Skip to content

⚑️ Architecture IOS app with SwiftUI ⚑️. 🍭 Clean Architecture - 🌸 Reactive Programming (RxSwift) - 🀟SOLID - πŸ”† Resolver (DI) - πŸ”₯ MVVM - 🌰 MVI

Notifications You must be signed in to change notification settings

LamNguyen17/SwiftUI-Clean-Architecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

⚑️ Architecture IOS app with SwiftUI ⚑️. 🍭 Clean Architecture - 🌸 Reactive Programming (RxSwift) - 🀟SOLID - πŸ”† Resolver (DI) - πŸ”₯ MVVM - 🌰 MVI

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages