Learnings--
1-- Learn about the delegate pattern.
2-- Swift protocols and extensions.
3-- Swift guard keyword.
4-- Swift computed properties.
5-- Swift closures and completion handlers.
6-- Learn to use URLSession to network and make HTTP requests.
7-- Parse JSON with the native Encodable and Decodable protocols.
8-- Learn to use Grand Central Dispatch to fetch the main thread.