:+1: Nice work. The point of this homework was to explore a simple example of a full MVC application with a RESTful API. You learned about UITableViews, custom UITableViewCells, navigation from a UITableView, and basic networking.
Grading Summary:
Functionality: Good
Code Style: Good
Visual Design: Average
Overall: Good
Detailed Notes
Be sure to follow the Swift code styling conventions for the homework. Please read this style guide for more detail. Style is important!
In future homework, we will cover how to implement models that can deserialize from an NSDictionary. SwiftyJSON is a useful project for making it easier to deserialize the JSON response. For a more robust solution, you can also investigate using an ORM like Pistachio.
Your custom Movie cell should have a property called movie. In the custom setter of movie, you should configure the various labels and images. This decouples your custom cells from the table view controllers.
Note that your images are stretched. You should observe the UIContentMode of the UIImageView. By default, it will stretch the image to match your dimensions, which is probably not what you want.
Your error message should be displayed if a network request fails and hidden again if it succeeds. You have to create your own error message instead of using the alert controller. We mentioned it in the requirements. (You may not use UIAlertController or a 3rd party library to display the error.). Another issue is that you only check the network connection at the beginning (viewDidLoad) and when the alert is dismissed, your app show the loading icon and no way to load the movies again on this screen.
Nice job implementing a UIScrollView. UIScrollView is the parent class of UITableView. However, users still cannot see the entire movie synopsis. Consider using UITextView in this case.
Nice job keeping things nice and aligned on a grid. That helps the application look cleaner and make it easier for the user to find the correct information. For a lot more information, you can read Design tips for iOS9.
It's not a big deal but in case there is no result, you should show a label No results found to make your app more friendly :wink:
Great work with the search bar and adding animation for the posters.
Is there any special meaning behind the tab bar icons? 🐶 🐱
Great job dedicating enough time to do the homework. You learned a lot! Keep up the good work.
:+1: Nice work. The point of this homework was to explore a simple example of a full MVC application with a RESTful API. You learned about UITableViews, custom UITableViewCells, navigation from a UITableView, and basic networking.
Grading Summary:
Overall: Good
Detailed Notes
movie
. In the custom setter ofmovie
, you should configure the various labels and images. This decouples your custom cells from the table view controllers.UIContentMode
of theUIImageView
. By default, it will stretch the image to match your dimensions, which is probably not what you want.You may not use UIAlertController or a 3rd party library to display the error.
). Another issue is that you only check the network connection at the beginning (viewDidLoad
) and when the alert is dismissed, your app show the loading icon and no way to load the movies again on this screen.UIScrollView
.UIScrollView
is the parent class ofUITableView
. However, users still cannot see the entire movie synopsis. Consider usingUITextView
in this case.No results found
to make your app more friendly :wink:Great job dedicating enough time to do the homework. You learned a lot! Keep up the good work.