Git Product home page Git Product logo

moviebox's Introduction

Mobile Assignment CS

This is a placeholder README file with the instructions for the assignment. We expect you to build your own README file.

Instructions

You should build an application using the TheMovieDB API. We have provided an initial application that will help you with fast-tracking app development. It contains the following:

  • Class containing baseUrl and API key which is needed to fetch contents from TMDB API.
  • Basic implementation of a scrollable list to fetch contents and display them in list format.
  • Basic JSON parsing to parse server response and populate details.
  • Placeholder RatingView class

UI/UX

Below you can find the links to the layouts you need to follow. You can inspect each view to get the dimensions:

Functionalities

We expect you to implement the following functionalities in the app:

  1. List horizontally currently playing movies

  2. Display the most popular movies in the vertical list view, with multiple pages

    • Client API details
    • Implement the paging mechanism to load a list of movies as the user scrolls down the list.
    • Cache movie images, in order to make smooth scrolling.
    • Implement the custom RatingView.
      • Animation is not necessary.
      • Use Yellow tint for movie ratings less than 50% and Green for 50% and above.
    • Each list item will contain the following:
      • Poster image
      • Title
      • Rating
      • Duration
      • Release date
  3. When a user clicks on any movie list item, it will navigate to a detailed screen, with more information about the movie

Additional Requirements And Restrictions

We expect you to follow this additional requirements and restrictions, as it will be part of how we evaluate your assignment:

  1. Provide Unit Tests. This is very important for us to evaluate your level of seniority, so please spare some time to spend on developing Unit Tests.
  2. 3rd party libraries are allowed (except for the rating view). However, do not use any Alpha version of libraries.
  3. This is not an ordinary assignment. If you notice any strange behavior, you are free to make decisions regarding the implementation or to take things out of scope, as long as your decision can be justified.
  4. Provide a README.md explaining your approach, which includes the image caching but also the rating view implementation and any other important decision or assumptions you made during development. Also, list all the 3rd party libraries used and the reason why.
  5. You should follow the layouts provided to develop the functionalities.
  6. The code of the assignment has to be delivered along with the git repository (.git folder). We want to see your progress. We require a cloud-hosted repository on Gitlab, which MUST be PRIVATE.
  7. Do not open PRs to the main repository.
  8. You are free to handle extra requirements, and this will be part of how we evaluate your work.
  9. The application should be developed in portrait mode only.
  10. Minimum Supported versions:
    • Android - 5.0 +
    • iOS - 14.0 +

moviebox's People

Contributors

gcasa avatar m-cs-recruitment avatar

Watchers

 avatar

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.