Android take home Test from Lab1886
- The user should see a list of images fetched from the HeyBeach API. (Initially just display the first page from the api) - DONE
- A user should be able to register/login/logout inside the app. - DONE
- Ensure the design interface is responsive and functional on mobile, desktop and/or tablets. -DONE
- Include the image title with each image. -DONE
- Implement some sort of infinite scrolling (Get all the images using the paginated api). -DONE
- Implement some sort of image caching. -DONE (Only memory caching)
- The image grid can be flexible, respecting the images aspect ratio (non-fixed size grid, check the wireframe, eg. Pinterest style) - DONE (very similar to the Pineterest app.)
The application architecture is MVVM using Architecture Components. Paging is done with the Paging Library from the Architecture Components. It allows to unit test every layer and keep view logic and business logic independent. For async working the app relies solely on Kotlin coroutines. No 3rd party libraries were used, except for Mockito to mock dependencies in unit tests.
- All network requests fail through mobile data. The app works well on WI-FI connection.
- Disk caching can be added in ImageLoader