In v2.0, BasicProvider has changed its designated initializer and internal variable names.
Variable name changes:
dataProvider $\rightarrow$ dataSourceviewProvider $\rightarrow$ viewSourcesizeProvider $\rightarrow$ sizeSourcepresenter $\rightarrow$ animator
Removed handlers:
willReloadHandler and didReloadHandler have been removed.
New Initializer Pattern:
Instead of using convenience initializers with direct data and closures, you must now explicitly provide a DataSource and a ViewSource.
// Old v1.3 pattern
CollectionProvider(
data: data,
viewUpdater: { (label: UILabel, data: Data, index: Int) in
label.text = "\(data)"
},
sizeProvider: { (index: Int, data: Data, collectionSize: CGSize) -> CGSize in
return CGSize(width: 50, height: 50)
}
)
// New v2.0 pattern
BasicProvider(
dataSource: ArrayDataSource(data: data),
viewSource: ClosureViewSource(viewUpdater: { (label: UILabel, data: Data, index: Int) in
label.text = "\(data)"
}),
sizeSource: { (index: Int, data: Data, collectionSize: CGSize) -> CGSize in
return CGSize(width: 50, height: 50)
}
)
BasicProvider(
dataSource: ArrayDataSource(data: data),
viewSource: ClosureViewSource(viewUpdater: { (label: UILabel, data: Data, index: Int) in
label.backgroundColor = .red
label.layer.cornerRadius = 8
label.textAlignment = .center
label.text = "\(data)"
}),
sizeSource: { (index: Int, data: Data, collectionSize: CGSize) -> CGSize in
return CGSize(width: 50, height: 50)
}
)