Skip to content

fastworkco/mobile_home_assignment

Repository files navigation

Flutter App Challenge - Movie

Welcome to the Movie App technical challenge! This is a take-home assignment designed to assess your Flutter development skills.

🎯 Challenge Goals

This assignment is designed to evaluate:

  • Problem-solving: How you break down and prioritize tasks.
  • Code Quality: Your ability to write clean, maintainable, and efficient Flutter code.
  • Decision Making: Your rationale for choosing specific solutions and patterns.
  • Best Practices: Your understanding of Flutter development patterns and architecture.
  • Documentation Review: Your ability to work with API documentation and external resources.
  • Testing: How you verify the correctness of your implementation.

We're looking for well-structured code and thoughtful implementation decisions.


💻 Project Setup & API Information

This repository contains a basic Flutter project to get you started. Here's the overview of the project structure:

flutter_movie_app/
├── lib/
│   ├── main.dart
│   ├── screens/
│   │   ├── movie_list_screen.dart
│   ├── models/
│   │   ├── movie.dart
│   ├── services/
│   │   └── movie_service.dart
├── pubspec.yaml
└── README.md

API Service:

In this test, we are using the api from themoviedb.org. To help you get started, we have provided a MovieService class that handles the API calls. Here are the details:

  • To connect to API, we need to login anonymously using API key which already provided in the MovieService.
  • MovieService has a getMovies method that returns a list of movies.
  • MovieService has a getMovieDetail method that returns a movie detail.

If you need more information, you can find the API documentation here.

🚀 Requirements

Before we begin, Let's give you some context to keep in mind.

  • You are building an application that will work with multiple squads. Make sure to make make the app scalable and maintainable.
  • You are not required to implement test cases. Still, we would love to see if you can show us how you will do with some samples.

Please complete all of the following requirements:

Sample Image

Core Features

  • Integrate Movie List Screen with /movies endpoint to show both title and thumbnail. Note that the list should be able to do infinite scrolling.
  • Create a Movie Detail Screen with /movies/{id} endpoint. It should show both details of movie and credits. You can get credits data from /movies/{id}/credits
  • Implement a favorite toggle for movie list items. This should persist locally and be loaded when the app starts. User should be able to see this on both list page and detail page.
  • In Movie List screen implement search movie with title feature. The search result should show in real-time

Submission Guidelines

  • Push your code to a public GitHub repository. If you cannot do the public repo, please send as zip file instead.
  • README.md should be include in the repository. This should include item belows.
    • How to run your app?
    • What is your app architecture? Why do you chosse this design?
    • Which state mangement are you using? Compare with some of other frameworks that you had known or researched.
    • How you do error handling?
    • What you want to improve further if you had a chance to continue?
    • Anything you want to add to explaing your work.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published