Thanks for applying for an Android developer role at Outdoorsy. We've put together this code challenge. It should take around two hours to complete.
This task is to develop a single-page app that provides the ability to search Outdoorsy listings by keyword. Users will be able to type keywords in a text field. Typing in the text field will cause search results to appear automatically. The search results should display an image of the vehicle and the vehicle’s name. The keyboard should hide when the user starts to scroll.
See https://github.com/outdoorsy/interview-challenge-android/blob/main/Challenge-Design.png
See https://github.com/outdoorsy/interview-challenge-android/blob/main/API.md
- Build this as if it will be maintained for a while (code organization, maintainability, extensibility).
- Add comments as much as possible to explain what is happening in your code. Please do not submit a project with little to no comments.
- Use common, modern Kotlin architecture.
- Use Jetpack Compose for all UI.
- Make performant API requests.
- The project should run on phones; tablet support is optional.
- It should be easy to find the starting point of the application and understand how the app works. Please do not use overly complex architecture.
- Please start your project from scratch rather than copying from a previously created project.
- Please include a brief description of how your project works and why you chose the architecture that you did.
- Please include a screenshot of your project. It should look almost identical to the design image. Please do not submit a project that doesn't match the design.
- Functionality of project matches description above
- Visual design (mostly, not pixel perfect) matches designs
- Ability to think through all potential states
- Code design/style should be consistent and reasonable
- In the
README.md
of the project, describe exactly how to run the application
- Please make frequent and descriptive git commits.
- Use any dependencies that you find useful to complete the task.
- Please use the most modern version of Kotlin and Android Studio.
When complete, please push your code to Github and send the link to the project or zip the project (including the .git
directory) and send it back.
Thank you and please ask if you have any questions!
- Implement a cool new feature or functionality we didn't ask for!
- Unit tests?
- Add a
README.md
and list what would you do differently if you had a whole week to work on this. - Add extra code/features with the following characteristics in mind:
- Performance
- Aesthetics
- Usability