Coder Social home page Coder Social logo

flicks's Introduction

Flicks

Flicks is a movies app using the The Movie Database API.

Time spent: 20 hours spent in total

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.
  • User sees a loading state while waiting for the movies API.
  • User can pull to refresh the movie list.
  • User sees an error message when there's a networking error.

The following optional features are implemented:

  • Movies are displayed using a CollectionView instead of a TableView.
  • User can select from a tab bar for either "Now Playing" or "Top Rated" movies.
  • 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.
  • User sees a loading state while waiting for the movies API.
  • User can pull to refresh the movie list.
  • 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:

  • User sees an error message when there's a networking error.
  • Movies are displayed using a CollectionView instead of a TableView.
  • User can select from a tab bar for either "Now Playing" or "Top Rated" movies.
  • User can search for a movie.
  • All images fade in as they are loading.
  • Customize the UI.
  • 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!
  • If internet connection is slow or unreliable, the loading state lasts only as long as it takes to get the movie names and descriptions. The movie thumbnails are loaded afterwards, when the user can interact with the application. This prioritizes the movie names and descriptions over the optional movie poster thumbnails.
  • Allows user to select up to 4 different categories of movies or tv shows.
  • Uses UserDefaults to see which tabs are selected
  • User can switch between detail view or poster view
  • Caches 8 json files as nsdictionaries in case user does not have internet the next time they use the application
  • will notify user they are viewing old data if a stable internet connection is not detected

Video Walkthrough

Here's a walkthrough of implemented user stories:

Video Walkthrough

[Version 2 -> All Features implemented work properly](/gifs/v2.0-final.gif)

Version 2

[Version 1 - Simulated with very slow internet](/gifs/v1.0 - slow internet.gif)

[Version 1 - Simulated with normal internet](/gifs/v1.0 - fast internet.gif)

GIF created with LiceCap.

Notes

Describe any challenges encountered while building the app.

License

Copyright 2016 Kevin Rajan

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.

flicks's People

Contributors

kvnloo avatar

Watchers

James Cloos avatar  avatar

Forkers

mattmlm

flicks's Issues

W2-Submission?

Hi Kevin,

๐Ÿ‘ Nice work! Your app looks great. The point of this homework was to get familiar with two common forms of navigation in iOS (push and tab bar). It also provided a chance to extend your Flicks app in new ways.

Few notes for your app:

  • Great UI and animation. One minor thing is the white text on green background for the rating seems hard to read.
  • Good job implement the side menu, and dynamic tabBarItem
  • You haven't handled the network error. If I turn off wifi, your app will be in infinite loop of the HUD.

We have a detailed Project 2 Feedback Guide which covers the best practices for implementing this assignment. Read through the feedback guide point-by-point to determine ways you might be able to improve your submission. You should consider going back and implementing these improvements as well. Keep in mind that one of the most important parts of iOS development is learning the correct patterns and conventions.

If you have any particular questions about the assignment or the feedback, feel free to reply here or email us at [email protected].

PS:

  • Next time please create the issue following the naming convention: W[week#]-Submission
  • How long did you spend on the assignment? Please specify that in the README.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.