A demostration app with a single recycler view, displaying public repositories for the Shopify organisation using the Github Developer API.
The recycler view displays the following information:
- Name
- If it is a fork or not (Y/N)
- Number of stargazers
- Time since it was created
- An interaction on the row which opens the user's browser to the repository's page
Goals:
- Solve the problem using Android (Kotlin preferred)
- Retrofit
- Back the recycler view with some type of cache or persistence layer
- Use an architecture pattern
The architectural pattern chosen was Model-View-Presenter (MVP) as a balance between separation of concerns, existing knowledge and speed to a minimum viable product.
3rd party libraries:
- okhttp
- retrofit
- joda-time
Google:
- gson
- recyclerview
- room
- Rx - too much work is being done on the UI thread leading to some UI jank on the emulator when loading items
- Dagger - at the moment injection is handled by an object that can be override for unit tests via product flavours
- Clean - implement use cases and separate layers into data / domain / presentation
- Unit tests
- Developed for Pixel 2 API 27 - test for more devices / screen sizes / API levels