Unsplash Photos
Simple app display photos from Unsplash public API "https://picsum.photos/v2/list?page=1&limit=20"
How to run?
This project needs Android Studio 4.0.0 or above with Android Gradle plugin 7.0+
It's recommended to open it using Android Studio Artic Fox or above
Architecture
Clean architecture based on MVVM (Model-View-ViewModel) with Kotlin Coroutines and Flow
The following diagram shows all the layers and how each layer interacts with each other.
This architecture uses a layered software architecture.
Built With đź›
- Kotlin - official programming language for Android development.
- Coroutines - for asynchronous or non-blocking programming.
- Flow - a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value.
- Android Architecture Components - Part of Jetpack it's a set of libraries that help you design robust, testable, and maintainable apps.
- LiveData - an observable data holder class.
- ViewModel - store and manage UI-related data in a lifecycle conscious way.
- Room - persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
- Navigation - Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app.
- Hilt - Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection (Based on Dagger 2).
- Retrofit - A type-safe HTTP client for Android.
- Gson A Java serialization/deserialization library to convert Java Objects into JSON and back.
- Material Design are interactive building blocks for creating a friendly user interface.
- Glide An image loading and caching library.
- Timber A logger API.
- JUnit A foundation framework for developer-side testing on the JVM.
- Mockito Mocking framework for unit tests.