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.
- 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.)
- 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)
- Flutter SDK
- Dart SDK
- API Key do TMDB
-
Clone o repositório
git clone https://github.com/AlissonGSantos/teste_tecnico.git cd teste_tecnico -
Configure a API Key do TMDB
- Crie uma conta gratuita em TMDB
- Gere sua API Key
- Copie o arquivo
.env.examplepara.env - Adicione sua API Key no arquivo
.env:
TMDB_API_KEY=Bearer sua_api_key_aqui TMDB_API_URL=https://api.themoviedb.org/3 -
Instale as dependências
flutter pub get
-
Execute o projeto
flutter run
-
Para build de produção
flutter build apk
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
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
Este projeto utiliza a API do TMDB v3:
- Base URL: https://api.themoviedb.org/3/
- Documentação: https://developers.themoviedb.org/3
- Endpoints utilizados:
/movie/popular- Lista de filmes populares/movie/{id}- Detalhes do filme (duração)/search/movie- Busca por filmes
Este é um projeto de teste técnico, sugestões são bem-vindas!