/Flicks

Primary LanguageSwift

Assignment1 - Flicks is a movies viewer application for iOS.

Submitted by: Davis Guohua Xie

User Stories

The following required functionality is complete:

  • User can view a list of movies currently playing in theaters from The Movie Database.

  • Poster images are loaded using the UIImageView category in the AFNetworking library.

  • The movie poster is available by appending the returned poster_path to https://image.tmdb.org/t/p/w342.

  • User sees a loading state while waiting for the movies API. You can use one of the 3rd party libraries listed on CocoaControls.

[X]User can pull to refresh the movie list.

The following optional features are implemented:

  • User sees an error message when there's a networking error. You may not use UIAlertController or a 3rd party library to display the error. See this screenshot for what the error message should look like. Hint: Using the hidden property of a view can be helpful to toggle the network error view's visibility. (This app implemented some codes from Isuru Nanayakkara: Reach.swift)

  • Movies are displayed using a CollectionView instead of a TableView.

[ ]User can search for a movie. Hint: Consider using a UISearchBar for this feature. Don't use the UISearchDisplayController.

[ ]All images fade in as they are loading: Hint: Use the - (void)setImageWithURLRequest:(NSURLRequest *)urlRequest method in AFNetworking. Create an additional category method that has a success block that fades in the image. The image should only fade in if it's coming from network, not cache.

[x]Customize the UI. You can use Iconmonstr and The Noun Project as good sources of images.

Video Walkthrough

Here's a walkthrough of implemented user stories:

Video Walkthroughideo Walkthrough

GIF created with LiceCap.

Notes

Describe any challenges encountered while building the app.

License

Copyright [2015] [Davis Guohua Xie]

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Project 2 - Flick V2

Name of your app is a movies app displaying box office and top rental DVDs using The Movie Database API.

Time spent: X hours spent in total

User Stories

The following required functionality is completed:

  • User can view movie details by tapping on a cell.
  • User can select from a tab bar for either Now Playing or Top Rated movies.
  • Customize the selection effect of the cell.

The following optional features are implemented:

  • For the large poster, load the low resolution image first and then switch to the high resolution image when complete.
  • Customize the navigation bar.

The following additional features are implemented:

  • List anything else that you can get done to improve the app functionality!

Please list two areas of the assignment you'd like to discuss further with your peers during the next class (examples include better ways to implement something, how to extend your app in certain ways, etc):

Video Walkthrough

Here's a walkthrough of implemented user stories:

Video Walkthrough

GIF created with LiceCap.

Notes

Describe any challenges encountered while building the app.

License

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.