Table views

Delegate Pattern
Controller, Protocol, View

we use the most to customize the textfield.
textField(_:shouldChangeCharactersInRange: replacementString:)

An array of structs

struct Album {
	let name:String
	let image:UIImage
	let count:Int
}

An array of dictionaries

let albums = [
	["name": "Camera Roll", "imageName": "img1", "count": 5],
	["name": "Recently Deleted", "imageName": "img2", "count": 0],
]