Skip to content

araratthehero/rijksmuseum-collection

Repository files navigation

Rijksmuseum collection

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

Toolkit

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

Architecture

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.

image

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.

UI

The app supports Dark and Light modes

On supported devices it uses Material 3 dynamic colors

In case of errors, the app shows an error screen with an option to Retry loading

Rijksmuseum.collection.error.state.mp4

Libraries

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages