Skip to content

fastworkco/mobile_challenges

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published