Jungle Devs - Flutter Challenge The Movie DB

Description

Challenge goal: The purpose of this challenge is to give a general idea of how to create a simple app using a variety of well accepted practices and technologies in the market. You’ll be implementing a simplified version of a movie preview app using The Movie DB API. The concepts that you’re gonna apply are:

  • BLoC;
  • ListView;
  • API calls;
  • Error handling;
  • Loading states;

Target level: This is an all around challenge that covers both juniors and experienced devs based on the depth of how the concepts were applied.

Final accomplishment: By the end of this challenge you'll have a working development app.

Resources

Design: Figma

Acceptance criteria

  • Clear instructions on how to run the application
  • Implement the screens using The Movie DB trending endpoint (Create an account and generate an API access key for development to be able to access it)
  • Initial screen should show the list of trending movies in the week and highlight the top spot
  • Initial screen should allow the user to search any movie by name even if not in the trending list, choose an appropriate endpoint from the API
  • Details screen should show the details about the current movie and a list containing the other movies trending
  • Clicking on movie cards should open the details screen
  • The stack of screens on the app must not scale indefinetely
  • The app should follow the design provided in figma

Desirables

  • Use the BLoC pattern
  • Implement pagination in both lists of the app.
  • Implement error handling and reload options such as pull to refresh
  • Manage the loading states accordingly

Instructions to run

Fork the repo, in the forked repo, create a new branch to work on. Create a new project and do your work on that branch of the forked repo. When done, open a pull request from your branch to the master branch of the forked repo so that the end result can be reviewed.

Evaluation

Our evaluation will be conducted over the state of the forked repository in which the challenge is done.