This project forms the basis for the technical task for Android developer applicants. Please CAREFULLY read ALL these instructions before beginning the task.
The starting code of the application is DELIBERATELY BAD - it will not function correctly in its current state. The code contains bugs and several examples of bad practice according to Modern Android Development. This gives you the opportunity to demonstrate your ability to fix and improve badly-written legacy code.
- The task should take around 3 hours to complete
- You are welcome to consult the internet, documentation or code you have written to help you
- We encourage you to use tools like the debugger and Layout Inspector to diagnose issues.
We will assess you on:
- Understanding of best practices in Android development
- Clear code organisation
- The size and message of git commits
We are less concerned with:
- UI styling / animation etc.
This project uses the JSON placeholder API to display a list of posts. The list includes the title of each post and an excerpt from each post's body.
- Survey the code in this project and leave comments under everything you notice that needs to be fixed or improved.
- Pick 2 or 3 of these issues and implement fixes / improvements.
- Feel free to refactor and change the architecture of the code
- You can add 3rd party libraries if you wish (be prepared to explain your choices)
- We would like to see at least one example of either a Unit test or a compose UI test
- Suggest other improvements you might make if you had a few days to work on the code.
The app uses the following endpoints from the JSON placeholder API:
GET https://jsonplaceholder.typicode.com/posts/
GET https://jsonplaceholder.typicode.com/posts/{POST_ID}/
GET https://jsonplaceholder.typicode.com/posts/{POST_ID}/comments/
- You should submit the above as either a compressed git repository (zip file) or a link to your repository on github or similar hosting service. Please commit regularly as you carry out the task and keep the commit history in tact.
In your interview we will ask you more about your process in completing the above tasks.
There will also be a short exercise where you will be paired with one of our Android team member and given a task to develop this project further. You will have full access to internet resources to help you.