/iOS-Clean-Architecture-MVVM-RxSwift

iOS Project implemented with Clean Layered Architecture and MVVM + RxSwift + Moya

Primary LanguageSwift

Template iOS App using Clean Architecture and MVVM + RXSwift

iOS Project implemented with Clean Layered Architecture and MVVM + RxSwift + Moya (Can be used as Template project by replacing item name “Movie”) Added RxSwift to the this project iOS-Clean-Architecture-MVVM

Alt text

Layers

  • Domain Layer = Entities + Use Cases + Repositories Interfaces
  • Data Repositories Layer = Repositories Implementations + API (Network)
  • Presentation Layer (MVVM) = ViewModels + Views

Alt text

Built With

  • RxSwift - Reactive Programming in Swift
  • RxCocoa - library allows us to use Cocoa APIs used in iOS and OS X with reactive technics.
  • RxSwiftExt - A collection of Rx operators & tools not found in the core RxSwift distribution
  • Moya - Network abstraction layer written in Swift.
  • Moya/RxSwift - Moya provides an optional RxSwift implementation of MoyaProvider that does a few interesting things.
  • MoyaSugar - Syntactic sugar for Moya
  • Kingfisher - A lightweight, pure-Swift library for downloading and caching images from the web.
  • CocoaLumberjack/Swift - A fast & simple, yet powerful & flexible logging framework for Mac and iOS
  • Then - ✨ Super sweet syntactic sugar for Swift initializers
  • SwiftLint - A tool to enforce Swift style and conventions.

TO-DO

  • add test code