/Flix

Primary LanguageSwift

Project 1 - Flix

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

Time spent: 6 hours spent in total

User Stories

The following required user stories are complete:

  • User sees app icon in home screen and styled launch screen (+1pt)
  • User can scroll through a list of movies currently playing in theaters from The Movie DB API (+5pt)
  • User can "Pull to refresh" the movie list (+2pt)
  • User sees a loading state while waiting for the movies to load (+2pt)

The following optional user stories are implemented:

  • User sees an alert when there's a networking error (+1pt)
  • User can search for a movie (+3pt)
  • While poster is being fetched, user see's a placeholder image (+1pt)
  • User sees image transition for images coming from network, not when it is loaded from cache (+1pt)
  • Customize the selection effect of the cell (+1pt)
  • For the large poster, load the low resolution image first and then switch to the high resolution image when complete (+2pt)

The following additional user stories are implemented:

  • User can tap on the movie to see its full title and description (+1-3pts)

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):

  1. How to make cells that size dynamically based on the space needed for the labels
  2. How to allow users to favorite movies

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.

I encountered several exceptions that are difficult to debug, so I had to rebuild the app from scratch once and revert changes a few times.

License

Copyright 2018 Hye Lim Joun

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 - Flix

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

Time spent: 2 hours spent in total

User Stories

The following required functionality is completed:

  • User can tap a cell to see a detail view (+5pts)
  • User can tap a tab bar button to view a grid layout of Movie Posters using a CollectionView (+5pts)

The following stretch features are implemented:

  • User can tap a poster in the collection view to see a detail screen of that movie (+3pts)
  • In the detail view, when the user taps the poster, a new screen is presented modally where they can view the trailer (+3pts)
  • Customize the navigation bar (+1pt)
  • List in any optionals you didn't finish from last week (+1-3pts)
    • ...
    • ...

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):

  1. How to allow user to create their own tab
  2. How to customize appearance for different tabs

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.

I had trouble accessing the API. It turned out I was misentering a value for a parameter by using the movie's name instead of its id.

License

Copyright 2018 Hye Lim Joun

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.

Lab 3 - Flix

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

Time spent: 3 hours spent in total

User Stories

The following required user stories are complete:

  • The following screens use AutoLayout to adapt to various orientations and screen sizes
    • Movie feed view (+3pt)
    • Detail view (+2pt)

The following stretch user stories are implemented:

  • Dynamic Height Cells (+1)
  • Collection View AutoLayout (+2)

The following additional user stories are implemented:

  • Centered launch screen image using autolayout

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):

  1. How to allow dragging to resize labels
  2. How to use different AutoLayout constants for portrait and landscape view

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.

One problem I encountered was that the elements in the cell were not being adjusted to fit landscape view. I fixed this by setting AutoLayout constraints for the table view.

License

Copyright 2018 Hye Lim Joun

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.

Lab 5 - Flix

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

Time spent: 2 hours spent in total

User Stories

The following required user stories are complete:

  • Create a movie model (+2pt)
  • Implement the movie model (+2pt)
  • Implement property observers (+2pt)
  • Create a basic API Client (+2pt)

The following additional user stories are implemented:

  • List anything else that you can get done to improve the app functionality! (+1-3pts)

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):

  1. How to easily create a lot of views for displaying different kinds of movies
  2. How to manage a lot of views in a single class

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.

One difficulty I encountered was trying to create a new tab for "Popular" movies. There were multiple small bugs including icons not showing up and the back button going missing from the detail view. In the end I could not get the new tab to properly work.

License

Copyright 2018 Hye Lim Joun

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.