Quick suggestion while reading the book, I am a big fan of Swift compactMap function and on page 178 (the factory chapter) you could have refactor the addAnnotations method as follow:
private func addAnnotations() {
let annotations = businesses.compactMap({annotationFactory.createBusinessMapViewModel(for: $0)})
mapView.addAnnotations(annotations)
}
thanks
Alex