We want to know how you write code - we don't care about coding challenges where you have to reimplement the HTTP protocol by using the bare basics, we want to know how you can use the existing libraries to solve the problems that we have to solve. Also, we are not asking you to reinvent the wheels.
Your task is to create a very small Android application (written in Kotlin) which will listen to the voice of the user and will tell them the current weather information when asked for. It's up to you to decide how exactly you want to approach this challenge - do you want to use the Android native SpeechRecognizer for voice recognition, use offline voice recognition for keywords (namely PocketSphinx) or another online service with conversational capabilities (e.g. api.ai, Microsoft LUIS, etc.). You can also choose whichever weather service you prefer.
- Structure of the code - how you apply Clean Architecture and SOLID principles inside your code and keep it clean and reusable.
- Testing included Unit and UI tests (Please don't submit your code without any Testing!!).
- Using external APIs is cool, but you have to make sure the app will support errors if the API is down.
- A short Readme file will be appreciated just to explain your approach and explaining project parts.
- Overall user experience in the application.
After sending the challenge we'll wait 1 week to hear back from you. Feel free to ask us for any clarification if you need it. It's okay to leave TODOs in the code, just explan what you would still finish there if you had more time.
When you're ready, please fork this repository and start writing code in your fork. You'll get extra points for committing often in small chunks, so we'll see the process of how you created the application and proceed with the problem.