This is a basic Rotten Tomatoes (read-only) client.
CodePath iOS Bootcamp September 2014 - Week 1 Project
Here's an animated GIF (made with LiceCAP) of what it looks like:
- Clone the repository
- Install CocoaPods
sudo gem install cocoapods
- Install Pods
pod install
- Update/initialize the hacktoolkit-ios_lib submodule (temporary step until CocoaPods supports Swift source files natively)
git submodule init
git submodule update
- Set up API keys
- Create a
secrets.xcconfig
config file based onsecrets.xcconfig.template
- Obtain an API key from the Rotten Tomatoes API page and add the key to
secrets.xcconfig
- Create a
- Run it!
Time spent: 15+ hours
Completed:
- User can view a list of movies from Rotten Tomatoes. Poster images must be loading asynchronously.
- User can view movie details by tapping on a cell
- User sees loading state while waiting for movies API. Using MBProgressHUD. (Other alternatives were considered among 3rd party libraries at cocoacontrols.com)
- User sees error message when there's a networking error. (Without using UIAlertView, because it is crappy). Sorta working, using TSMessages
- User can pull to refresh the movie list.
Optional user stories completed:
- All images fade in. Achieved by using
UIView.animateWithDuration(...)
- For the large poster, load the low-res image first, switch to high-res when complete. Achieved by using
self.fullPosterImage.setImageWithURL(NSURL(string: movie.originalPosterUrl), placeholderImage: self.movieCellSender!.thumbnailPosterImage.image)
- All images should be cached in memory and disk (in order to have images load immediately upon cold start). In progress; have an in-memory dictionary cache of url
String : UIImage
and need to figure out how to do that. - Customize the highlight and selection effect of the cell. (Turned off the default)
- Customize the navigation bar. (Changed text and background colors, opacity)
- Add a tab bar for Box Office and DVD. Switches between the two using a common ViewController by embedding in Container Views. Couldn't figure out how to change the color of the tab bar.
- Add a search bar. Filters movies with titles containing the
searchText
substring using case insensitive search andUISearchBarDelegate