Este projeto é uma aplicação Android desenvolvida em Kotlin , seguindo as diretrizes do MVVM - Model View ViewModel, utilizando o Gradle como sistema de build. O aplicativo é baseado no universo de Rick and Morty, permitindo aos usuários pesquisar e filtrar personagens.
No vídeo abaixo você pode conferir o resultado final desse APP
rick-and-morty-preview-app.mp4
- Pesquisa de personagens por nome e status (VIVO, MORTO, DESCONHECIDO)
- Filtragem de personagens por status
- Navegação detalhada para cada personagem
- Implementação do Jetpack Compose para a interface do usuário
- Utilização do Paging 3 para paginação dos dados
- Injeção de dependência com Koin
- Coil para renderizar as imagens
A arquitetura em camadas é um padrão de design de software que separa o código em camadas lógicas para melhor organização e separação de responsabilidades. A arquitetura em camadas é implementada através da modularização, onde cada módulo representa uma camada específica.
O projeto é dividido em três módulos principais:
-
:data
- Este módulo é responsável por lidar com todas as operações de dados, como buscar dados de uma API, ler/escrever em um banco de dados local, etc. Ele não sabe nada sobre a interface do usuário e apenas fornece os dados necessários para outras camadas. -
:domain
- Este módulo contém a lógica de negócios do aplicativo. Ele define as regras de negócios que o aplicativo deve seguir. Ele é independente de qualquer outra camada e não deve saber como os dados são obtidos ou como são apresentados ao usuário. -
:commons
- Este módulo pode conter código que é comum a vários outros módulos, como utilitários, extensões de função, etc. -
:app
- Este é o módulo do aplicativo que contém a interface do usuário e a lógica de apresentação. Ele depende dos módulos :data e :domain para obter os dados necessários e aplicar as regras de negócios, respectivamente.Essa separação em camadas permite que cada parte do código tenha responsabilidades claras e bem definidas, tornando o código mais fácil de entender, testar e manter. Além disso, a modularização permite que partes do código sejam reutilizadas em diferentes partes do projeto ou até mesmo em projetos diferentes.
- Clone este repositório
- Abra o projeto no Android Studio
- Execute o aplicativo em um emulador ou dispositivo físico