The app is created to show Rijksmuseum's artworks list and show more details about the artworks when clicking on them. It uses the RijksData API.
Rijksmuseum.collection.mp4
To build this app, I used:
- Macbook Pro (M1 Pro) | 32 GB
- Android Studio Electric Eel | 2022.1.1 Patch 1
- Google Pixel 7 Pro (API 33) and Emulator arm64-v8a (API 28) for testing
As Android apps grow in size, it's important to define an architecture that allows the app to scale, increases the app's robustness, and makes the app easier to test. For that purpose I used Google's recommended app architecture.
In Rijsmuseum collection app, I used all three layers mentioned above:
- UI (:app) - Responsible to display application data on the screen
- Domain (:domain) - Contains the business logic of the app
- Data (:data) - Responsible for making changes to the data
In a small app like this, the Domain layer could easily be removed, but I have it implemented as part of this assignment to showcase that it can help us split responsibilities and scale the codebase.
Rijksmuseum.collection.error.state.mp4
Here is the list of the libraries I used in this project:
- App
- Hilt - Dependency injection
- Coil - for loading images asynchronously
- Paging
- Navigation
- Compose
- Network
- Retrofit 2
- Okhttp3
- Gson
- Testing
- Junit