Create Basic App

All business logic is in ViewController.swift
Ah, ok. Haven't looked at any of that yet.
I actually think this logic should probably also live in a custom view. You could define a method on it (called, say, updateWithViewModel) that would take in a bunch of state and then update all the relevant UI.