Skip to content

AlissonGSantos/teste_tecnico

Repository files navigation

Catálogo de Filmes TMDB

Um aplicativo Flutter que consome a API do The Movie Database (TMDB) para exibir informações sobre filmes populares e permitir busca por título.

📱 Funcionalidades

  • Lista de Filmes Populares: Exibe os filmes mais populares na tela inicial com poster, título e duração
  • Busca por Filme: Permite buscar filmes por nome com resultados em tempo real
  • Interface Responsiva: Layout adaptável para diferentes tamanhos de tela e orientações
  • Estados de Loading: Indicadores visuais durante carregamento de dados
  • Tratamento de Erros: Mensagens claras para diferentes tipos de erro (sem internet, API key inválida, etc.)

🛠️ Tecnologias Utilizadas

  • Flutter: Framework principal (^3.8.1)
  • Provider: Gerenciamento de estado (^6.0.0)
  • HTTP: Requisições para a API do TMDB (^1.0.0)
  • Flutter Dotenv: Gerenciamento de variáveis de ambiente (^5.0.0)
  • Flutter SVG: Renderização de ícones SVG (^2.0.0)

📋 Pré-requisitos

  • Flutter SDK
  • Dart SDK
  • API Key do TMDB

⚙️ Configuração

  1. Clone o repositório

    git clone https://github.com/AlissonGSantos/teste_tecnico.git
    cd teste_tecnico
  2. Configure a API Key do TMDB

    • Crie uma conta gratuita em TMDB
    • Gere sua API Key
    • Copie o arquivo .env.example para .env
    • Adicione sua API Key no arquivo .env:
    TMDB_API_KEY=Bearer sua_api_key_aqui
    TMDB_API_URL=https://api.themoviedb.org/3
    
  3. Instale as dependências

    flutter pub get

🚀 Como Executar

  1. Execute o projeto

    flutter run
  2. Para build de produção

    flutter build apk

🏗️ Estrutura do Projeto

lib/
├── controllers/                        # Gerenciamento de estado
│   ├── popular_movies_controller.dart
│   └── search_movies_controller.dart
├── models/                             # Modelos de dados
│   └── movie.dart
├── pages/                              # Telas do aplicativo
│   ├── home_page.dart
│   └── search_page.dart
├── repository/                         # Camada de dados/API
│   └── movie_repository.dart
├── themes/                             # Temas e estilos
│   └── app_theme.dart
├── widgets/                            # Componentes reutilizáveis
│   ├── movie_card.dart
│   ├── movie_list_tile.dart
│   ├── navigation_menu.dart
│   └── search_textfield.dart
└── main.dart                           # Ponto de entrada

📐 Arquitetura

O projeto segue uma arquitetura baseada em:

  • Provider Pattern: Para gerenciamento de estado reativo
  • Separação de Responsabilidades: Controllers, Repository, Widgets e Pages bem definidos

📄 API

Este projeto utiliza a API do TMDB v3:

🤝 Contribuição

Este é um projeto de teste técnico, sugestões são bem-vindas!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors