From 7f20c1b4e0c7eeba75ad10a26b49e19bb2dd3002 Mon Sep 17 00:00:00 2001 From: Arjun Nayini Date: Tue, 6 Feb 2018 10:44:29 -0800 Subject: [PATCH] More updates to getting started (#106) --- Guides/Getting Started.md | 58 ++++++++++--- docs/Classes.html | 2 +- docs/Classes/CollectionViewDriver.html | 2 +- docs/Classes/TableViewDriver.html | 2 +- .../TableViewDriver/TableRefreshContext.html | 2 +- docs/Enums.html | 2 +- docs/Enums/SupplementaryViewKind.html | 2 +- docs/Enums/ViewRegistrationMethod.html | 2 +- docs/Guides.html | 2 +- docs/Protocols.html | 2 +- docs/Protocols/CollectionCellViewModel.html | 2 +- .../CollectionSupplementaryViewModel.html | 2 +- docs/Protocols/DiffableViewModel.html | 2 +- .../ReusableCellViewModelProtocol.html | 2 +- ...eusableSupplementaryViewModelProtocol.html | 2 +- docs/Protocols/TableCellViewModel.html | 2 +- .../TableSectionHeaderFooterViewModel.html | 2 +- .../TableViewCellModelEditActions.html | 2 +- docs/Structs.html | 2 +- docs/Structs/CollectionSectionViewModel.html | 2 +- docs/Structs/CollectionViewModel.html | 2 +- docs/Structs/SupplementaryViewInfo.html | 2 +- docs/Structs/TableSectionViewModel.html | 2 +- docs/Structs/TableViewModel.html | 2 +- docs/Structs/ViewRegistrationInfo.html | 2 +- docs/Typealiases.html | 2 +- .../Contents/Resources/Documents/Classes.html | 2 +- .../Classes/CollectionViewDriver.html | 2 +- .../Documents/Classes/TableViewDriver.html | 2 +- .../TableViewDriver/TableRefreshContext.html | 2 +- .../Contents/Resources/Documents/Enums.html | 2 +- .../Enums/SupplementaryViewKind.html | 2 +- .../Enums/ViewRegistrationMethod.html | 2 +- .../Contents/Resources/Documents/Guides.html | 2 +- .../Resources/Documents/Protocols.html | 2 +- .../Protocols/CollectionCellViewModel.html | 2 +- .../CollectionSupplementaryViewModel.html | 2 +- .../Protocols/DiffableViewModel.html | 2 +- .../ReusableCellViewModelProtocol.html | 2 +- ...eusableSupplementaryViewModelProtocol.html | 2 +- .../Protocols/TableCellViewModel.html | 2 +- .../TableSectionHeaderFooterViewModel.html | 2 +- .../TableViewCellModelEditActions.html | 2 +- .../Contents/Resources/Documents/Structs.html | 2 +- .../Structs/CollectionSectionViewModel.html | 2 +- .../Structs/CollectionViewModel.html | 2 +- .../Structs/SupplementaryViewInfo.html | 2 +- .../Structs/TableSectionViewModel.html | 2 +- .../Documents/Structs/TableViewModel.html | 2 +- .../Structs/ViewRegistrationInfo.html | 2 +- .../Resources/Documents/Typealiases.html | 2 +- .../Resources/Documents/getting-started.html | 77 ++++++++++++------ .../Contents/Resources/Documents/index.html | 2 +- .../Contents/Resources/Documents/vision.html | 2 +- .../Contents/Resources/docSet.dsidx | Bin 45056 -> 45056 bytes docs/docsets/ReactiveLists.tgz | Bin 75302 -> 72050 bytes docs/getting-started.html | 77 ++++++++++++------ docs/index.html | 2 +- docs/undocumented.json | 2 +- docs/vision.html | 2 +- 60 files changed, 207 insertions(+), 115 deletions(-) diff --git a/Guides/Getting Started.md b/Guides/Getting Started.md index 6650dd5..75d94c7 100644 --- a/Guides/Getting Started.md +++ b/Guides/Getting Started.md @@ -3,7 +3,7 @@ `ReactiveLists` provides a React-like API for `UITableView` and `UICollectionView`. The goal is to provide a more declarative interface on top of your normal table and collection code. To get started with `ReactiveLists`, in addition to reading this document, we encourage you to play around with the [example app included](https://github.com/plangrid/ReactiveLists/tree/master/Example) in the repository. -#### Checkout +#### Checking out the code ```bash $ git clone https://github.com/plangrid/ReactiveLists.git @@ -13,28 +13,59 @@ $ open ReactiveLists.xcworkspace ## Primary Components -#### `*SectionViewModel` +#### `SectionViewModel` -This is either a `CollectionViewSectionViewModel` or a `TableViewSectionViewModel`. This type describes +This is either a `CollectionSectionViewModel` or a `TableSectionViewModel`. This type describes the title and contents of a given section within your `UICollectionView` or `UITableView` -#### `*CellViewModel` +#### `CellViewModel` -This either `CollectionViewCellViewModel` protocol or `TableViewCellViewModel` protocol. You create types that conform to these protocols, which are used to configure a given cell in your `UITableView` or `UICollectionView`. +This either `CollectionCellViewModel` protocol or `TableCellViewModel` protocol. You create types that conform to these protocols, which are used to configure a given cell in your `UITableView` or `UICollectionView`. -#### `*ViewModel` +#### `ViewModel` This is either a `TableViewModel` or a `CollectionViewModel`. These are types that describe what your `UITableView` or `UICollectionView` should look like. You initialize such a `ViewModel` with a set of `SectionModel`s, which in turn are initialized with a set of `CellViewModel`s. After doing this, your `ViewModel` contains all the data required to render your `UITableView` or `UICollectionView` -#### `*ViewDriver` +#### `ViewDriver` This is either a `TableViewDriver` or a `CollectionViewDriver`. These types are responsible for calling all the methods to update your view when new data is available. You initialize your `Driver` with a `UITableView` or `UICollectionView` and then as new data becomes available, you construct a new `ViewModel` and set the `Driver`'s `tableViewModel` or `collectionViewModel` property to the new `ViewModel`. From there the `Driver` will figure out the differences in the data and re-render your `UITableView` or `UICollectionView` automatically for you. -To get set up, you first need to add a `Driver` (either a `TableViewDriver` or `CollectionViewDriver`) to your view controller: +## Example + +```swift +// Given a view controller with a table view + +// 1. create cell models +let cell0 = ExampleTableCellModel(...) +let cell1 = ExampleTableCellModel(...) +let cell2 = ExampleTableCellModel(...) + +// 2. create section models +let section0 = ExampleTableSectionViewModel(cellViewModels: [cell0, cell1, cell2]) + +// 3. create table model +let tableModel = TableViewModel(sectionModels: [section0]) + +// 4. create driver +self.driver = TableViewDriver(tableView: self.tableView, tableViewModel: tableModel) + +// 5. update driver with new table model as it changes +let updatedTableModel = self.doSomethingToChangeModels() +self.driver.tableViewModel = updatedTableModel + +// self.tableView will update automatically +``` + + +## Detailed Example + +The following is a more detailed example, to see how this is all integrated into your +code. To get set up, you first need to add a `Driver` (either a `TableViewDriver` +or `CollectionViewDriver`) to your view controller: ```swift struct Person { @@ -52,8 +83,7 @@ final class PersonViewController: UITableViewController { super.viewDidLoad() // Initialize our `TableViewDriver` with our tableView self.tableViewDriver = TableViewDriver(tableView: self.tableView) - // Register any cell types we will use with their reuse identifiers - self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "PersonUserCell") + self.people = [Person(name: "Tom")] } } ``` @@ -96,7 +126,7 @@ Okay now lets go back and fill in our `viewModel(forState:)` function: extension PersonViewController { static func viewModel(forState people: [Person]) -> TableViewModel { let personCellViewModels = people.map { PersonCellModel(person: $0) } - let section = TableViewSectionViewModel( + let section = TableSectionViewModel( headerTitle: "People", headerHeight: 44, cellViewModels: personCellViewModels, @@ -115,7 +145,11 @@ all those models into a single section and then creates a `TableViewModel` from Now all we have to do is to define `PersonCellModel`: ```swift -struct PersonCellModel: TableViewCellViewModel, DiffableViewModel { + +final class PersonCell: UITableViewCell { } + +struct PersonCellModel: TableCellViewModel, DiffableViewModel { + var registrationInfo = ViewRegistrationInfo(classType: PersonCell.self) var accessibilityFormat: CellAccessibilityFormat = "PersonUserCell" let cellIdentifier = "PersonUserCell" let editingStyle: UITableViewCellEditingStyle = .delete diff --git a/docs/Classes.html b/docs/Classes.html index 155483b..638f41f 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -202,7 +202,7 @@

Declaration

diff --git a/docs/Classes/CollectionViewDriver.html b/docs/Classes/CollectionViewDriver.html index 5dbee71..05a29d9 100644 --- a/docs/Classes/CollectionViewDriver.html +++ b/docs/Classes/CollectionViewDriver.html @@ -394,7 +394,7 @@

Declaration

diff --git a/docs/Classes/TableViewDriver.html b/docs/Classes/TableViewDriver.html index 43dbd32..43c90f6 100644 --- a/docs/Classes/TableViewDriver.html +++ b/docs/Classes/TableViewDriver.html @@ -373,7 +373,7 @@

Declaration

diff --git a/docs/Classes/TableViewDriver/TableRefreshContext.html b/docs/Classes/TableViewDriver/TableRefreshContext.html index 963a615..ac4cf67 100644 --- a/docs/Classes/TableViewDriver/TableRefreshContext.html +++ b/docs/Classes/TableViewDriver/TableRefreshContext.html @@ -236,7 +236,7 @@

Declaration

diff --git a/docs/Enums.html b/docs/Enums.html index 1ae9587..5a84c4e 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -205,7 +205,7 @@

Declaration

diff --git a/docs/Enums/SupplementaryViewKind.html b/docs/Enums/SupplementaryViewKind.html index 4e93bdc..7654daf 100644 --- a/docs/Enums/SupplementaryViewKind.html +++ b/docs/Enums/SupplementaryViewKind.html @@ -210,7 +210,7 @@

Declaration

diff --git a/docs/Enums/ViewRegistrationMethod.html b/docs/Enums/ViewRegistrationMethod.html index 2004e6f..208269d 100644 --- a/docs/Enums/ViewRegistrationMethod.html +++ b/docs/Enums/ViewRegistrationMethod.html @@ -235,7 +235,7 @@

Declaration

diff --git a/docs/Guides.html b/docs/Guides.html index 4a36df0..aacfef2 100644 --- a/docs/Guides.html +++ b/docs/Guides.html @@ -136,7 +136,7 @@

Guides

diff --git a/docs/Protocols.html b/docs/Protocols.html index 583e1f8..7d51398 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -380,7 +380,7 @@

Declaration

diff --git a/docs/Protocols/CollectionCellViewModel.html b/docs/Protocols/CollectionCellViewModel.html index d5d352e..223df12 100644 --- a/docs/Protocols/CollectionCellViewModel.html +++ b/docs/Protocols/CollectionCellViewModel.html @@ -326,7 +326,7 @@

Parameters

diff --git a/docs/Protocols/CollectionSupplementaryViewModel.html b/docs/Protocols/CollectionSupplementaryViewModel.html index eb87186..c5c5146 100644 --- a/docs/Protocols/CollectionSupplementaryViewModel.html +++ b/docs/Protocols/CollectionSupplementaryViewModel.html @@ -264,7 +264,7 @@

Parameters

diff --git a/docs/Protocols/DiffableViewModel.html b/docs/Protocols/DiffableViewModel.html index f9140c9..11f957a 100644 --- a/docs/Protocols/DiffableViewModel.html +++ b/docs/Protocols/DiffableViewModel.html @@ -189,7 +189,7 @@

Declaration

diff --git a/docs/Protocols/ReusableCellViewModelProtocol.html b/docs/Protocols/ReusableCellViewModelProtocol.html index 81951bb..5e01d8f 100644 --- a/docs/Protocols/ReusableCellViewModelProtocol.html +++ b/docs/Protocols/ReusableCellViewModelProtocol.html @@ -175,7 +175,7 @@

Declaration

diff --git a/docs/Protocols/ReusableSupplementaryViewModelProtocol.html b/docs/Protocols/ReusableSupplementaryViewModelProtocol.html index a8961d2..7131110 100644 --- a/docs/Protocols/ReusableSupplementaryViewModelProtocol.html +++ b/docs/Protocols/ReusableSupplementaryViewModelProtocol.html @@ -175,7 +175,7 @@

Declaration

diff --git a/docs/Protocols/TableCellViewModel.html b/docs/Protocols/TableCellViewModel.html index d106970..90a0823 100644 --- a/docs/Protocols/TableCellViewModel.html +++ b/docs/Protocols/TableCellViewModel.html @@ -536,7 +536,7 @@

Parameters

diff --git a/docs/Protocols/TableSectionHeaderFooterViewModel.html b/docs/Protocols/TableSectionHeaderFooterViewModel.html index ae481b0..f764617 100644 --- a/docs/Protocols/TableSectionHeaderFooterViewModel.html +++ b/docs/Protocols/TableSectionHeaderFooterViewModel.html @@ -249,7 +249,7 @@

Parameters

diff --git a/docs/Protocols/TableViewCellModelEditActions.html b/docs/Protocols/TableViewCellModelEditActions.html index 2b7f8fb..e94af1c 100644 --- a/docs/Protocols/TableViewCellModelEditActions.html +++ b/docs/Protocols/TableViewCellModelEditActions.html @@ -175,7 +175,7 @@

Declaration

diff --git a/docs/Structs.html b/docs/Structs.html index 674b262..0d0398c 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -320,7 +320,7 @@

Declaration

diff --git a/docs/Structs/CollectionSectionViewModel.html b/docs/Structs/CollectionSectionViewModel.html index 6f77182..6512a78 100644 --- a/docs/Structs/CollectionSectionViewModel.html +++ b/docs/Structs/CollectionSectionViewModel.html @@ -268,7 +268,7 @@

Parameters

diff --git a/docs/Structs/CollectionViewModel.html b/docs/Structs/CollectionViewModel.html index f12be2e..f215739 100644 --- a/docs/Structs/CollectionViewModel.html +++ b/docs/Structs/CollectionViewModel.html @@ -312,7 +312,7 @@

Parameters

diff --git a/docs/Structs/SupplementaryViewInfo.html b/docs/Structs/SupplementaryViewInfo.html index 223f542..f548aff 100644 --- a/docs/Structs/SupplementaryViewInfo.html +++ b/docs/Structs/SupplementaryViewInfo.html @@ -304,7 +304,7 @@

Parameters

diff --git a/docs/Structs/TableSectionViewModel.html b/docs/Structs/TableSectionViewModel.html index c92b69a..41239e7 100644 --- a/docs/Structs/TableSectionViewModel.html +++ b/docs/Structs/TableSectionViewModel.html @@ -531,7 +531,7 @@

Parameters

diff --git a/docs/Structs/TableViewModel.html b/docs/Structs/TableViewModel.html index 1778e07..f2564d6 100644 --- a/docs/Structs/TableViewModel.html +++ b/docs/Structs/TableViewModel.html @@ -426,7 +426,7 @@

Parameters

diff --git a/docs/Structs/ViewRegistrationInfo.html b/docs/Structs/ViewRegistrationInfo.html index 8bd9bcf..fdc6d36 100644 --- a/docs/Structs/ViewRegistrationInfo.html +++ b/docs/Structs/ViewRegistrationInfo.html @@ -275,7 +275,7 @@

Parameters

diff --git a/docs/Typealiases.html b/docs/Typealiases.html index ea8906f..348c762 100644 --- a/docs/Typealiases.html +++ b/docs/Typealiases.html @@ -167,7 +167,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes.html index 155483b..638f41f 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes.html @@ -202,7 +202,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/CollectionViewDriver.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/CollectionViewDriver.html index 5dbee71..05a29d9 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/CollectionViewDriver.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/CollectionViewDriver.html @@ -394,7 +394,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/TableViewDriver.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/TableViewDriver.html index 43dbd32..43c90f6 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/TableViewDriver.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/TableViewDriver.html @@ -373,7 +373,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/TableViewDriver/TableRefreshContext.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/TableViewDriver/TableRefreshContext.html index 963a615..ac4cf67 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/TableViewDriver/TableRefreshContext.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Classes/TableViewDriver/TableRefreshContext.html @@ -236,7 +236,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums.html index 1ae9587..5a84c4e 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums.html @@ -205,7 +205,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums/SupplementaryViewKind.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums/SupplementaryViewKind.html index 4e93bdc..7654daf 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums/SupplementaryViewKind.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums/SupplementaryViewKind.html @@ -210,7 +210,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums/ViewRegistrationMethod.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums/ViewRegistrationMethod.html index 2004e6f..208269d 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums/ViewRegistrationMethod.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Enums/ViewRegistrationMethod.html @@ -235,7 +235,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Guides.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Guides.html index 4a36df0..aacfef2 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Guides.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Guides.html @@ -136,7 +136,7 @@

Guides

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols.html index 583e1f8..7d51398 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols.html @@ -380,7 +380,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/CollectionCellViewModel.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/CollectionCellViewModel.html index d5d352e..223df12 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/CollectionCellViewModel.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/CollectionCellViewModel.html @@ -326,7 +326,7 @@

Parameters

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/CollectionSupplementaryViewModel.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/CollectionSupplementaryViewModel.html index eb87186..c5c5146 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/CollectionSupplementaryViewModel.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/CollectionSupplementaryViewModel.html @@ -264,7 +264,7 @@

Parameters

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/DiffableViewModel.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/DiffableViewModel.html index f9140c9..11f957a 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/DiffableViewModel.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/DiffableViewModel.html @@ -189,7 +189,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/ReusableCellViewModelProtocol.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/ReusableCellViewModelProtocol.html index 81951bb..5e01d8f 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/ReusableCellViewModelProtocol.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/ReusableCellViewModelProtocol.html @@ -175,7 +175,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/ReusableSupplementaryViewModelProtocol.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/ReusableSupplementaryViewModelProtocol.html index a8961d2..7131110 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/ReusableSupplementaryViewModelProtocol.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/ReusableSupplementaryViewModelProtocol.html @@ -175,7 +175,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableCellViewModel.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableCellViewModel.html index d106970..90a0823 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableCellViewModel.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableCellViewModel.html @@ -536,7 +536,7 @@

Parameters

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableSectionHeaderFooterViewModel.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableSectionHeaderFooterViewModel.html index ae481b0..f764617 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableSectionHeaderFooterViewModel.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableSectionHeaderFooterViewModel.html @@ -249,7 +249,7 @@

Parameters

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableViewCellModelEditActions.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableViewCellModelEditActions.html index 2b7f8fb..e94af1c 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableViewCellModelEditActions.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Protocols/TableViewCellModelEditActions.html @@ -175,7 +175,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs.html index 674b262..0d0398c 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs.html @@ -320,7 +320,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/CollectionSectionViewModel.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/CollectionSectionViewModel.html index 6f77182..6512a78 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/CollectionSectionViewModel.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/CollectionSectionViewModel.html @@ -268,7 +268,7 @@

Parameters

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/CollectionViewModel.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/CollectionViewModel.html index f12be2e..f215739 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/CollectionViewModel.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/CollectionViewModel.html @@ -312,7 +312,7 @@

Parameters

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/SupplementaryViewInfo.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/SupplementaryViewInfo.html index 223f542..f548aff 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/SupplementaryViewInfo.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/SupplementaryViewInfo.html @@ -304,7 +304,7 @@

Parameters

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/TableSectionViewModel.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/TableSectionViewModel.html index c92b69a..41239e7 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/TableSectionViewModel.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/TableSectionViewModel.html @@ -531,7 +531,7 @@

Parameters

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/TableViewModel.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/TableViewModel.html index 1778e07..f2564d6 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/TableViewModel.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/TableViewModel.html @@ -426,7 +426,7 @@

Parameters

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/ViewRegistrationInfo.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/ViewRegistrationInfo.html index 8bd9bcf..fdc6d36 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/ViewRegistrationInfo.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Structs/ViewRegistrationInfo.html @@ -275,7 +275,7 @@

Parameters

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Typealiases.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Typealiases.html index ea8906f..348c762 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Typealiases.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/Typealiases.html @@ -167,7 +167,7 @@

Declaration

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/getting-started.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/getting-started.html index df06a69..59854a4 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/getting-started.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/getting-started.html @@ -133,36 +133,62 @@

Getting Started

ReactiveLists provides a React-like API for UITableView and UICollectionView. The goal is to provide a more declarative interface on top of your normal table and collection code. To get started with ReactiveLists, in addition to reading this document, we encourage you to play around with the example app included in the repository.

-

Checkout

+

Checking out the code

$ git clone https://github.com/plangrid/ReactiveLists.git
 $ cd ReactiveLists/
 $ open ReactiveLists.xcworkspace
 

Primary Components

-

*SectionViewModel

+

SectionViewModel

-

This is either a CollectionViewSectionViewModel or a TableViewSectionViewModel. This type describes +

This is either a CollectionSectionViewModel or a TableSectionViewModel. This type describes the title and contents of a given section within your UICollectionView or UITableView

-

*CellViewModel

+

CellViewModel

-

This either CollectionViewCellViewModel protocol or TableViewCellViewModel protocol. You create types that conform to these protocols, which are used to configure a given cell in your UITableView or UICollectionView.

-

*ViewModel

+

This either CollectionCellViewModel protocol or TableCellViewModel protocol. You create types that conform to these protocols, which are used to configure a given cell in your UITableView or UICollectionView.

+

ViewModel

This is either a TableViewModel or a CollectionViewModel. These are types that describe what your UITableView or UICollectionView should look like. You initialize such a ViewModel with a set of SectionModels, which in turn are initialized with a set of CellViewModels. After doing this, your ViewModel contains all the data required to render your UITableView or UICollectionView

-

*ViewDriver

+

ViewDriver

This is either a TableViewDriver or a CollectionViewDriver. These types are responsible for calling all the methods to update your view when new data is available. You initialize your Driver with a UITableView or UICollectionView and then as new data becomes available, you construct a new ViewModel and set the Driver‘s tableViewModel or collectionViewModel property to the new ViewModel. From there the Driver will figure out the differences in the data and re-render your UITableView or UICollectionView automatically for you.

+

Example

+
// Given a view controller with a table view
 
-

To get set up, you first need to add a Driver (either a TableViewDriver or CollectionViewDriver) to your view controller:

-
struct Person {
+// 1. create cell models
+let cell0 = ExampleTableCellModel(...)
+let cell1 = ExampleTableCellModel(...)
+let cell2 = ExampleTableCellModel(...)
+
+// 2. create section models
+let section0 = ExampleTableSectionViewModel(cellViewModels: [cell0, cell1, cell2])
+
+// 3. create table model
+let tableModel = TableViewModel(sectionModels: [section0])
+
+// 4. create driver
+self.driver = TableViewDriver(tableView: self.tableView, tableViewModel: tableModel)
+
+// 5. update driver with new table model as it changes
+let updatedTableModel = self.doSomethingToChangeModels()
+self.driver.tableViewModel = updatedTableModel
+
+// self.tableView will update automatically
+
+

Detailed Example

+ +

The following is a more detailed example, to see how this is all integrated into your +code. To get set up, you first need to add a Driver (either a TableViewDriver +or CollectionViewDriver) to your view controller:

+
struct Person {
   let name: String
-  let uuid = UUID()
+  let uuid = UUID()
 }
 
-final class PersonViewController: UITableViewController {
+final class PersonViewController: UITableViewController {
     var people: [Person]
     var tableViewDriver: TableViewDriver?
                   .
@@ -171,9 +197,8 @@ 

*ViewDriver

override func viewDidLoad() { super.viewDidLoad() // Initialize our `TableViewDriver` with our tableView - self.tableViewDriver = TableViewDriver(tableView: self.tableView) - // Register any cell types we will use with their reuse identifiers - self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "PersonUserCell") + self.tableViewDriver = TableViewDriver(tableView: self.tableView) + self.people = [Person(name: "Tom")] } }
@@ -188,13 +213,13 @@

*ViewDriver

Great! But how do you make that TableViewModel? We recommend having a static function that takes in new data and generates the TableViewModel. It might look something like this:

/// Given a new set of [Person], generates the `TableViewModel` representing that new data
-static func viewModel(forState people: [Person]) -> TableViewModel { ... }
+static func viewModel(forState people: [Person]) -> TableViewModel { ... }
 
 

Then any time your data (in this case the people property) changes, you can generate your new TableViewModel

var people: [Person] = [] {
-    didSet {
+    didSet {
         self.tableViewDriver?.tableViewModel = PersonViewController.viewModel(
             forState: people
         )
@@ -205,16 +230,16 @@ 

*ViewDriver

Okay now lets go back and fill in our viewModel(forState:) function:

/// Given a new set of [Person], generates the `TableViewModel` representing that new data
-extension PersonViewController {
-    static func viewModel(forState people: [Person]) -> TableViewModel {
-            let personCellViewModels = people.map { PersonCellModel(person: $0) }
-            let section = TableViewSectionViewModel(
+extension PersonViewController {
+    static func viewModel(forState people: [Person]) -> TableViewModel {
+            let personCellViewModels = people.map { PersonCellModel(person: $0) }
+            let section = TableSectionViewModel(
               headerTitle: "People",
               headerHeight: 44,
               cellViewModels: personCellViewModels,
               diffingKey: "People" // a unique string for automatically diffing
             )
-        return TableViewModel(sectionModels: [section])
+        return TableViewModel(sectionModels: [section])
     }
 }
 
@@ -225,7 +250,11 @@ 

*ViewDriver

all those models into a single section and then creates a TableViewModel from that section.

Now all we have to do is to define PersonCellModel:

-
struct PersonCellModel: TableViewCellViewModel, DiffableViewModel {
+

+final class PersonCell: UITableViewCell { }
+
+struct PersonCellModel: TableCellViewModel, DiffableViewModel {
+    var registrationInfo = ViewRegistrationInfo(classType: PersonCell.self)
     var accessibilityFormat: CellAccessibilityFormat = "PersonUserCell"
     let cellIdentifier = "PersonUserCell"
     let editingStyle: UITableViewCellEditingStyle = .delete
@@ -242,7 +271,7 @@ 

*ViewDriver

// If we want the library to automatically reload when new data is available // each cell model needs to have a unique key for the diffing algorithm to work. // In this case we just use the person's uuid - var diffingKey: String { + var diffingKey: String { return self.person.uuid.uuidString } } @@ -259,7 +288,7 @@

*ViewDriver

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/index.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/index.html index e16e21e..7607841 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/index.html @@ -206,7 +206,7 @@

License

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/vision.html b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/vision.html index c3fd42c..02b50c5 100644 --- a/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/vision.html +++ b/docs/docsets/ReactiveLists.docset/Contents/Resources/Documents/vision.html @@ -152,7 +152,7 @@

Vision

diff --git a/docs/docsets/ReactiveLists.docset/Contents/Resources/docSet.dsidx b/docs/docsets/ReactiveLists.docset/Contents/Resources/docSet.dsidx index 7366c5206a5b69cc0eff008824cf5d4376c24be2..1d46278a7b340d7a8e189d5379529057debcd453 100644 GIT binary patch delta 42 ycmZp8z|`=7X+jd8z;9j#1_ma6JqG?Re!Y!_d-*o&@)s9wp1FdRW%JUOXl(!@3l0$g delta 47 zcmZp8z|`=7X+jd8%m!Wt1_ma6JqG?Re!Y!_d-*o&@)sAfFfgz`-#m8(Bg^KcEz#Nl DQ~M6Y diff --git a/docs/docsets/ReactiveLists.tgz b/docs/docsets/ReactiveLists.tgz index f423203f66de402b0715e75e1e24aeb7f16c3c6b..7b8126b8c68eb227635df059c9c40eb5b54c5703 100644 GIT binary patch literal 72050 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 literal 75302 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 Started

ReactiveLists provides a React-like API for UITableView and UICollectionView. The goal is to provide a more declarative interface on top of your normal table and collection code. To get started with ReactiveLists, in addition to reading this document, we encourage you to play around with the example app included in the repository.

-

Checkout

+

Checking out the code

$ git clone https://github.com/plangrid/ReactiveLists.git
 $ cd ReactiveLists/
 $ open ReactiveLists.xcworkspace
 

Primary Components

-

*SectionViewModel

+

SectionViewModel

-

This is either a CollectionViewSectionViewModel or a TableViewSectionViewModel. This type describes +

This is either a CollectionSectionViewModel or a TableSectionViewModel. This type describes the title and contents of a given section within your UICollectionView or UITableView

-

*CellViewModel

+

CellViewModel

-

This either CollectionViewCellViewModel protocol or TableViewCellViewModel protocol. You create types that conform to these protocols, which are used to configure a given cell in your UITableView or UICollectionView.

-

*ViewModel

+

This either CollectionCellViewModel protocol or TableCellViewModel protocol. You create types that conform to these protocols, which are used to configure a given cell in your UITableView or UICollectionView.

+

ViewModel

This is either a TableViewModel or a CollectionViewModel. These are types that describe what your UITableView or UICollectionView should look like. You initialize such a ViewModel with a set of SectionModels, which in turn are initialized with a set of CellViewModels. After doing this, your ViewModel contains all the data required to render your UITableView or UICollectionView

-

*ViewDriver

+

ViewDriver

This is either a TableViewDriver or a CollectionViewDriver. These types are responsible for calling all the methods to update your view when new data is available. You initialize your Driver with a UITableView or UICollectionView and then as new data becomes available, you construct a new ViewModel and set the Driver‘s tableViewModel or collectionViewModel property to the new ViewModel. From there the Driver will figure out the differences in the data and re-render your UITableView or UICollectionView automatically for you.

+

Example

+
// Given a view controller with a table view
 
-

To get set up, you first need to add a Driver (either a TableViewDriver or CollectionViewDriver) to your view controller:

-
struct Person {
+// 1. create cell models
+let cell0 = ExampleTableCellModel(...)
+let cell1 = ExampleTableCellModel(...)
+let cell2 = ExampleTableCellModel(...)
+
+// 2. create section models
+let section0 = ExampleTableSectionViewModel(cellViewModels: [cell0, cell1, cell2])
+
+// 3. create table model
+let tableModel = TableViewModel(sectionModels: [section0])
+
+// 4. create driver
+self.driver = TableViewDriver(tableView: self.tableView, tableViewModel: tableModel)
+
+// 5. update driver with new table model as it changes
+let updatedTableModel = self.doSomethingToChangeModels()
+self.driver.tableViewModel = updatedTableModel
+
+// self.tableView will update automatically
+
+

Detailed Example

+ +

The following is a more detailed example, to see how this is all integrated into your +code. To get set up, you first need to add a Driver (either a TableViewDriver +or CollectionViewDriver) to your view controller:

+
struct Person {
   let name: String
-  let uuid = UUID()
+  let uuid = UUID()
 }
 
-final class PersonViewController: UITableViewController {
+final class PersonViewController: UITableViewController {
     var people: [Person]
     var tableViewDriver: TableViewDriver?
                   .
@@ -171,9 +197,8 @@ 

*ViewDriver

override func viewDidLoad() { super.viewDidLoad() // Initialize our `TableViewDriver` with our tableView - self.tableViewDriver = TableViewDriver(tableView: self.tableView) - // Register any cell types we will use with their reuse identifiers - self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: "PersonUserCell") + self.tableViewDriver = TableViewDriver(tableView: self.tableView) + self.people = [Person(name: "Tom")] } }
@@ -188,13 +213,13 @@

*ViewDriver

Great! But how do you make that TableViewModel? We recommend having a static function that takes in new data and generates the TableViewModel. It might look something like this:

/// Given a new set of [Person], generates the `TableViewModel` representing that new data
-static func viewModel(forState people: [Person]) -> TableViewModel { ... }
+static func viewModel(forState people: [Person]) -> TableViewModel { ... }
 
 

Then any time your data (in this case the people property) changes, you can generate your new TableViewModel

var people: [Person] = [] {
-    didSet {
+    didSet {
         self.tableViewDriver?.tableViewModel = PersonViewController.viewModel(
             forState: people
         )
@@ -205,16 +230,16 @@ 

*ViewDriver

Okay now lets go back and fill in our viewModel(forState:) function:

/// Given a new set of [Person], generates the `TableViewModel` representing that new data
-extension PersonViewController {
-    static func viewModel(forState people: [Person]) -> TableViewModel {
-            let personCellViewModels = people.map { PersonCellModel(person: $0) }
-            let section = TableViewSectionViewModel(
+extension PersonViewController {
+    static func viewModel(forState people: [Person]) -> TableViewModel {
+            let personCellViewModels = people.map { PersonCellModel(person: $0) }
+            let section = TableSectionViewModel(
               headerTitle: "People",
               headerHeight: 44,
               cellViewModels: personCellViewModels,
               diffingKey: "People" // a unique string for automatically diffing
             )
-        return TableViewModel(sectionModels: [section])
+        return TableViewModel(sectionModels: [section])
     }
 }
 
@@ -225,7 +250,11 @@ 

*ViewDriver

all those models into a single section and then creates a TableViewModel from that section.

Now all we have to do is to define PersonCellModel:

-
struct PersonCellModel: TableViewCellViewModel, DiffableViewModel {
+

+final class PersonCell: UITableViewCell { }
+
+struct PersonCellModel: TableCellViewModel, DiffableViewModel {
+    var registrationInfo = ViewRegistrationInfo(classType: PersonCell.self)
     var accessibilityFormat: CellAccessibilityFormat = "PersonUserCell"
     let cellIdentifier = "PersonUserCell"
     let editingStyle: UITableViewCellEditingStyle = .delete
@@ -242,7 +271,7 @@ 

*ViewDriver

// If we want the library to automatically reload when new data is available // each cell model needs to have a unique key for the diffing algorithm to work. // In this case we just use the person's uuid - var diffingKey: String { + var diffingKey: String { return self.person.uuid.uuidString } } @@ -259,7 +288,7 @@

*ViewDriver

diff --git a/docs/index.html b/docs/index.html index e16e21e..7607841 100644 --- a/docs/index.html +++ b/docs/index.html @@ -206,7 +206,7 @@

License

diff --git a/docs/undocumented.json b/docs/undocumented.json index c4b8b30..dd88318 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -2,5 +2,5 @@ "warnings": [ ], - "source_directory": "/Users/jsquires/Develop/ReactiveLists" + "source_directory": "/Users/arjunnayini/code/oss/ReactiveLists" } \ No newline at end of file diff --git a/docs/vision.html b/docs/vision.html index c3fd42c..02b50c5 100644 --- a/docs/vision.html +++ b/docs/vision.html @@ -152,7 +152,7 @@

Vision