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:
- React hooks;
- Redux;
- API calls;
- FlatList;
- 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.
Design: Figma
- 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
- 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 indefinitely
- The app should follow the design provided in Figma
- Use proper Redux structures
- Use Flatlist
- Implement error handling and reload options
- Manage the loading states accordingly
- Paginate the movies list
Fork the repo, in the forked repo, create a new branch to work on. Create a new project using React Native CLI 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.
Our evaluation will be conducted over the state of the forked repository in which the challenge is done.