TestsTested | ✗ |
LangLanguage | SwiftSwift |
License | MIT |
ReleasedLast Release | Dec 2016 |
SwiftSwift Version | 3.0 |
SPMSupports SPM | ✗ |
Maintained by Vlad Alexa, Ben Baggley, James Shaw.
Clean Architecture for iOS.
At The Distance, we have multiple projects with common functionality. Shared implementations ensure these features are developed concisely and remain bug free. TheDistanceKit is the overarching project containing this reusable code.
ViperKit is a framework to make writing apps using a clean architecture easier.
First developed by Mobile Mutual and explained in further detail on objc.io, Viper is an application of Clean Architecture to iOS apps.
These articles are very theory based and explain the overarching concepts well. When I first attempted to apply this architecture to a large scale commercial app, I ran into many undefined or inconsistent applications of the theory in the articles and demo code providied.
ViperKit contains protocols and default implementations for writing an iOS app using the 'Viper’ architecture. With a much stricter definition of the roles and responsibilities of each object in the architecture.
The key benefits of this stricter interpretation of the architecture are:
UIViewController
functionality through separation of logic and view-model elements.UIViewController
s[TBD] is a series of blog posts explaining how to apply this architecture to a wide variety of situations in much more detail.
ListDataSource
protocol. A CoreData backed implementation and an object backed implementation are given.MappedFetchedResultsController
and the CoreDataMapper
protocol are provided to convert between NSManagedObject
s and pure data, allowing data to be cleanly passed around the application without the need to consider the complexities associated with NSManagedObject
s.