This app consumes The Pixabay Api to fetch and display a list of images, The app uses MVVM design pattern to allow separation of the app components like fragments & activities from the data logic the reasons I leaned to this app architecture are:
- make the data survive device configuration changes
- allow testability(unit test) of the data layer
- improve codebase robustability by catching all edge error cases
- Also it's easier to maintain and scale the app over time
Minimum API level supported: 21
Build System: Gradle
To run the project you should have the following tools
- Android Studio 4.0 or above
- Internet connection
The app is build with MVVM Design Pattern to allow separation of concerns one benefit being allowing our data to not be destroyed over configuration changes
- MVVM architecture allowed the use of the Repository Pattern to act as mediator between th remote and local cache data
- The Local cache is where the UI reads and observes data from. And using NetworkBoundResource its possible to set conditions where data is
1.Data is saved to the local database
2.Update old data with new data from Pixabay API
3.When to make a request to the Pixabay API
pomodoro.Made.with.Clipchamp.2.mp4
- Navigation Components - To implement the Single Activity approach since fragments are lightweight than activities and allows easy passing of data between arguments in a type safe way
- Retrofit - A Type-safe HTTP client for Android which simplifies consuming RESTFul APIs.
- Gson - Converts JSON to Java/Kotlin objects.
- OkHttp-logging-interceptor - Makes it easy to log OkHttp network responses and requests
- Coil - Image loader library for android
- Dagger Hilt - Used for Dependency Injection
- Room - Persistence library making it easier to work with SQLite database
- View Binding - Jetpack library allowing type safe binding of views
- Livedata - Notifies Observer objects in the UI when underlying data changes.
- Twitter - @BreensR
- Linkedin - LinkedIn: Breens Robert