Owen LaRosa
Owen LaRosa
When first committing the Movie Manager code, I accidentally left my API key in the TMDBClient.swift file. Oops! This is a common mistake, especially when the API key is in...
In lesson 7, we added an activity indicator to the login view. The view appears and starts spinning when the login process begins, and stops spinning and disappears when the...
`TMDBClient` has an `Auth` struct that gets modified to store the request token and session ID. These values are only accessed from `TMDBClient`, but they could be read or modified...
When we call `dataTask(with:)`, we receive a completion handler with three values: `data`, `response`, and `error`. Similarly, the completion handlers we provide in our helper methods, return either the generic...
Right now, the watchlist and favorites list are initially populated from viewDidLoad. Then, we rely on adding and removing movies from the lists to keep the data in sync. This...
We use a `UIActivityIndicatorView` on the login screen to signal network activity. Apps will also signal network activity for other types of long running tasks (like image downloads). There's not...
Remember how we accessed the global image view property in `downloadPosterImage`'s completion handler? ```swift TMDBClient.downloadPosterImage(path: posterPath) { data, error in guard let data = data else { return } let...
If you've added a lot of movies to the watchlist and favorites list, then you'll need to scroll down to see your most recently added movies. And if you use...
After making the change to cancel the search task, you probably noticed some annoying warnings like this. ``` Result of call to 'taskForGETRequest(url:responseType:completion:)' is unused ``` Ever since we added...
Remember how annoying it is to log in every time you run the app? It would be great if the user could stay logged in. While you could go the...