In this repo you will find a basic Android application. It's very simple and does one job - fetch a list of songs from remote data source and display the data.
Please, familiarize yourself with this repository.
We're aware that the quality of the prepared code is not the best - it's on purpose.
Currently, the application fetches a list of songs from a remote data source and displays it. We've also prepared an embedded JSON file in this repository which could be used as a second data source.
During our technical interview, you will be asked to do some tasks which will improve overall quality and health of this codebase.
We are huge fans of Clean Architecture and you should be prepared for questions related to
- dependency injection
- introducing abstraction to a given problem
- adding multiple data sources
- refactoring the existing codebase
- testing.
We also love a nice and polished User Interface and we would like to see some of your skills in this area.
- You should pay attention to the architecture of the app and the usage of design patterns and data structures.
- You should write example unit tests to show that your solution is testable.
- You should explain not only what you're doing but also why you're doing something in a given fashion.
- App code should be idiomatic - we love Kotlin and we want to see that you do too.
- App code should be tested or at least testable.
- It’s easier to read the code when it’s well formatted and the code style is consistent.
- You can do some changes in this application before our interview if that works for you. For example, you can add your favourite DI solution so it will be easier to inject stuff later on. It's up to you.