🎬 TMDb App

Catálogo de Filmes desenvolvido com Kotlin, Jetpack Compose, Retrofit e Koin

Ver no GitHub

🧠 Sobre o Projeto

O TMDb App é um aplicativo Android moderno que consome a API do The Movie Database (TMDb) para exibir filmes populares, trailers e informações detalhadas.

Desenvolvido com foco em boas práticas de arquitetura, desempenho e escalabilidade, utilizando as principais bibliotecas do ecossistema Android.

🏗️ Arquitetura

O projeto segue o padrão MVVM (Model–View–ViewModel) combinado com o Repository Pattern.

Camada Responsabilidade Tecnologias
ModelRepresenta os dados da API e do banco localdata class, Room, Retrofit
RepositoryMedia o acesso entre API e banco localMoviesRepository, FavoriteMovieDao
ViewModelControla a lógica e estados da UIMoviesViewModel, FavoritesViewModel
View (UI)Exibição das telasJetpack Compose

🧰 Principais Tecnologias e Conceitos

🎨 Jetpack Compose
  • UI declarativa moderna
  • Uso de LazyColumn, remember, LaunchedEffect e State
  • Componentes customizados e animados
🌐 Retrofit + Coroutines
  • Consumo da API TMDb com suspend fun
  • Chamadas assíncronas otimizadas
  • Conversão JSON automática via Gson
💾 Room + Flow
  • Persistência local de favoritos
  • UI reativa com Flow<List<FavoriteMovie>>
  • Atualização automática de estados
📜 Paging 3
  • Paginação eficiente de filmes
  • Carregamento incremental
  • Integração com Compose via collectAsLazyPagingItems()
🧠 Koin
  • Injeção de dependência modularizada
  • Evita acoplamento e facilita testes
  • Módulos: networkModule, databaseModule, repositoryModule, viewModelModule
⚡ Kotlin Coroutines + Flow
  • Processamento assíncrono eficiente
  • LaunchedEffect e viewModelScope.launch
  • async/await para requisições paralelas

🚀 Principais Funcionalidades

🖼️ Galeria do Aplicativo

📦 Repositório no GitHub

Confira o código-fonte completo do projeto:

Ver Projeto no GitHub