- Fetches images from Unsplash.com via their API
- Written in Kotlin
- MVVM Architecture
- Uses Retrofit2, OkHTTP3, Moshi & Glide & Timber libraries
- Offline viewing support via a local database built with Room
- Limited unit testing (mostly local)
The app displays images in two layouts
- Full-width or Grid tiles
Supports limited offline viewing by using a local database to store image URLS and metadata
- Images which are still in Glide's cache will be displayed
- Prompt for the user to reconnect
The app needs to be initialized with an Unsplash API key. You can generate a new API key by registering an account and following the instructions at https://unsplash.com/developers .
Once you have your API key, insert it into the ./photo-gallery-challenge/keystore.properties
file:
example:
UNSPLASH_API_ACCESS_KEY = "456789876545678909876543"
Compile and run the app via Android Studio.
For convenience, there is pre-compiled APK also included in the release page
- Add more local and instrumented unit tests
- Implement a search bar
- 'Like' / 'Unlike' or 'add to favorites' function