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