Insplash

Displaying categorized images using the Unsplash API
View on GitHub

Project Overview

Insplash is an application developed in Kotlin language for Android using the Jetpack Compose UI Toolkit to build the interface and consumes the Unsplash API which is a repository of free images.

The app has a photo listing screen with search option, a screen for displaying the photo + information and a screen for listing favorite photos. It has a feature to bookmark photos that will only be saved in the local database for simplicity.

The defined architecture follows recommendations and principles from the official Android documentation and is based on the structure as shown in the image below:

Architecture & Technologies

UI building with Jetpack Compose
MVVM architecture with ViewModel for repository and UI interaction
Data layer using repository + data sources
Coroutines for asynchronous programming and managing long tasks
HTTP client and API connection configuration with Retrofit
Dependency Injection with Dagger Hilt
Loading and caching images with Glide
Storing API results in local database with Room
Manually implemented result paging engine
Creation of generic auxiliary classes in order to avoid code repetitions (DRY code principles)

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