Skip to content

Instantly share code, notes, and snippets.

View FlorianBasso's full-sized avatar

Florian Basso FlorianBasso

  • Rabios
  • Paris
View GitHub Profile
@FlorianBasso
FlorianBasso / movieCellItem
Created June 1, 2016 18:29
Example of CellItem protocol implementation
enum MovieType: String {
case Poster = "Poster"
case Cover = "Cover"
case Side = "Side"
static var allValues = [Cover, Poster, Side]
}
struct MovieCellItem {
@FlorianBasso
FlorianBasso / cellItemProtocol
Created June 1, 2016 18:22
Cell Item Protocol
protocol CellItem {
func reuseIdentifier() -> String
func cellNib() -> UINib?
func configureCell(cell: UICollectionViewCell)
func cellSize(maxSize: CGSize) -> CGSize
func register(collectionView: UICollectionView)
}
extension CellItem {
@FlorianBasso
FlorianBasso / simpleViewModel
Last active June 22, 2016 17:33
Example of a basic ViewModel
protocol ViewModelDelegate: class {
func viewModelDidStartLoad()
func viewModelDidLoad()
func viewModelDidFail()
}
class ViewModel: NSObject {
// MARK: - Properties
private weak var delegate: ViewModelDelegate?
@FlorianBasso
FlorianBasso / registerCells
Last active June 22, 2016 17:35
Example of registerCells method
func registerCells() {
guard let vm = self.viewModel else {
return
}
for item in vm.items {
item.register(self.collectionView)
}
}
@FlorianBasso
FlorianBasso / exampleViewModelDelegate
Created June 1, 2016 17:57
Example of ViewModelDelegate implementation
extension ViewController: ViewModelDelegate {
func viewModelDidStartLoad() {
print("Started !")
}
func viewModelDidLoad() {
self.registerCells()
self.collectionView.reloadData()
}