Skip to content

Easy-to-implement, best-practice Clean Architecture for iOS apps.

License

Notifications You must be signed in to change notification settings

rondiamond/Reduxion-iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reduxion-iOS

TL;DR

Easy-to-implement, best-practice Clean Architecture for iOS apps, featuring:

  • Loosely-coupled layers
    • for View / Business Logic / Data / Services
  • Composable business logic
    • in single-responsibility units
  • Good separation of concerns
    • facilitating automated testing (TDD/BDD) that’s performant and not brittle
  • Ability to switch the entire application between real and mock services
    • with one line of code
    • largely decoupling front-end from back-end development, if needed
  • Ability to easily persist & recall the entire state of the application
    • without any database framework at all
  • Ability to easily add time travel (rewind/fast-forward)
    • between different states of the application

Rationale and History

"Introducing Reduxion-iOS" (Medium.com)


Conceptual Overview

Reduxion-iOS is a Clean Architecture implementation, based on the patterns of:


Block Diagram


How to Use

Please see sample app for usage patterns.


Future Milestones

  • SwiftUI and Combine (and other modernizations) in the sample app

Special Thanks

  • Armin Kroll (whose Redux-iOS helped inspire this implementation)
  • Benjamin Encz (for evangelizing Redux and Unidirectional Data Flow for iOS)
  • "Uncle Bob" Martin (for too many reasons to count)
  • ... and everyone else who's been an inspiration toward Clean Code. Thanks.

Author:

Ron Diamond

About

Easy-to-implement, best-practice Clean Architecture for iOS apps.

Topics

Resources

License

Stars

Watchers

Forks