Skip to content

Latest commit

Β 

History

History
69 lines (51 loc) Β· 3.06 KB

File metadata and controls

69 lines (51 loc) Β· 3.06 KB

Flutter App Challenge - Movie

Welcome to the Movie App technical challenge! This document outlines the requirements and challenges for our upcoming pair programming session.

🎯 Challenge Goals

This 1-hour session is designed to observe your approach to:

  • Problem-solving: How you break down and prioritize tasks.
  • Communication: How effectively you verbalize your thought process and collaborate.
  • Code Quality: Your ability to write clean, maintainable, and efficient Flutter code.
  • Decision Making: Your rationale for choosing specific solutions and patterns.
  • Adaptability: How you handle unexpected issues time pressure.
  • Documentation Review: Your inclination to seek out and review documentation/API specs.
  • Testing: How you verify the correctness of your changes.

We're looking for effective collaboration and a clear understanding of your thought process throughout the session.


⏱️ Session Structure

  • Pre-Clock: You'll have time to ask questions and review this document before the 1-hour clock starts.
  • During Session: We'll be pair programming. Feel free to ask questions, discuss your approach, and use online resources for reference (e.g., Flutter documentation, Stack Overflow).
  • No AI Assistance: Please don't use AI tools or disable theses plugins(e.g., ChatGPT, Gemini Copilot) during the session.

πŸ’» Project Setup & API Information

You'll be provided with a basic Flutter project. Here are 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.

πŸš€ Challenges

The following challenges are designed to be completed within the 1-hour session.

Sample Image

Requirements

  • Apply any State Management of your choices (e.g., Provider, Riverpod, BLoC/Cubit, GetX, etc.)
  • Integrate Movie List Screen with /movies endpoint to show both title and thumbnail.
  • Create a Movie Detail Screen with /movies/{id} endpoint. The minimum requirement is to display title, thumbnail, sypnosis, and review_rating

Bonus

  • Implement a favorite toggle for movie list items. This should persist locally and be loaded when the app starts
  • In Movie List screen implement search movie with title feature.