Insplash

Exibição de imagens categorizadas utilizando a API do Unsplash
Ver no GitHub

Visão Geral do Projeto

Insplash é um aplicativo desenvolvido na linguagem Kotlin para Android utilizando o Jetpack Compose UI Toolkit para construção da interface e consome a API do Unsplash que é um repositório de imagens gratuitas.

O app possui uma tela de listagem de fotos com opção de pesquisa, uma tela para exibir a foto + informações e uma tela para listagem das fotos favoritas. Possui uma funcionalidade para favoritar fotos que serão salvas somente no banco de dados local por questões de simplicidade.

A arquitetura definida segue recomendações e princípios da documentação oficial do Android e baseia-se na estrutura conforme imagem abaixo:

Arquitetura & Tecnologias

Construção de UI utilizando o Jetpack Compose
Arquitetura MVVM com ViewModel para interação com repositório e UI
Camada de dados utilizando repositório + data sources
Coroutines para programação assíncrona e gerenciamento de longas tarefas
Cliente HTTP e configuração de conexão da API com Retrofit
Injeção de dependência com Dagger Hilt
Carregamento e caching de imagens com Glide
Armazenamento de resultados da API no banco de dados local com Room
Mecanismo de paginação de resultados implementado manualmente
Criação de classes genéricas auxiliares a fim de evitar repetições de código (princípios de DRY code)

Tags
Kotlin MVVM Jetpack Compose UI Coroutines Repository Pattern Retrofit Dagger Hilt Glide Room