Because this project main goal is to provide storage classes and mapping/event functionality for DTCollectionViewManager and DTTableViewManager, you should probably first read, why those two frameworks exist in the first place. This is described, for example, in Why document of DTCollectionViewManager.
- Xcode 13+
- Swift 5.3+
- iOS 11+ / tvOS 11+ / macCatalyst 13+
- Add package into Project settings -> Swift Packages
pod 'DTModelStorage'
The goal of storage classes is to provide datasource models for UITableView/UICollectionView. Let's take UITableView, for example. It's datasource methods mostly relates on following:
- sections
- items in sections
- section headers and footers / supplementary views
Storage protocol builds upon those elements to define common interface for all storage classes. SupplementaryStorage protocol extends Storage to provide methods on supplementary models / headers/ footers.
Here are five Storage implementations provided by DTModelStorage and links to detailed documentation on them:
- Memory storage
- Single section storage
- Storage for diffable datasources ( iOS 13 / tvOS 13 and higher )
- CoreData storage
- Realm storage
Please note, that all five storages support the same interface for handling supplementary models - supplementary providers. You can read more about them in dedicated document.
ViewModelMapping and EventReaction classes are a part of mapping system between data models and reusable views. You can read about how they are used and why in DTCollectionViewManager Mapping document as well as DTCollectionViewManager Events document