This repo contains the Knomatic Android code challenge.
Your task is to modify this application so that it tells the current and forecast weather at the user's location. You will need to get the user's GPS location and then use that to contact the Dark Sky Forecast API and display the weather and forecast. After that is completed, please complete the questionnaire at the bottom of this readme file. Please include your answers inline in this file.
Your time is valuable and we understand that. Our goal is for you to spend about three hours working on this task. If you are having fun and want to take it farther feel free, but it's not required. Our evaluation criteria are listed below. Please make sure that all of the evaluation sections are included. And to be clear we don't expect them to be 100% production ready, just enough to show that you know what you're doing in each area.
A note about the Dark Sky Forecast API Key: The Dark Sky Forecast API has free tier that allows about 1000 calls a day, you can sign up for an API key today without giving them any payment details. If this changes or you have a problem, please email us and we will get you an API key.
- You must finish this application so that it can contact the Dark Sky Forcast API for the users location, and display the current weather and the forcast.
- Your submission must be a fork of this repo and a submitted as a pull request on GitHub
- You should add any needed screens/UI elements
- You should support both Tablets and Phones, but doesn't have to perfect
- You must answer the questions inline in this file.
- Use Android Studio's code generation where you can.
- You may use any JSON library you want
- You may use any other open source libraries you want
- Its nice when things look nice, but we know you're not a designer. A set of weather icons can be found here: http://adamwhitcroft.com/climacons/ and a design mock of our checkin weather screen is included in this repo at /mock.png . Your app dosn't need to look like the mock, its just for inspiration to help get you started.
- Correct Use of Fragments
- Correct Use of Activities
- Correct Use of Layouts
- Correct Use of Styles and Other Resource Files
- Correct Use of JSON API's
- Correct Use of Location Services
- Correct use of Application and fragment contexts.
- Use of Android Compatibility Framework.
- How is state passed between activities
- How is the JSON deserialized
- Markdown formatting
- Defensive programming (App shouldn't crash if GPS or network is off)
- Some working unit tests!
Please answer the following in about a paragraph.
- How long did you spend on completing this challenge?
- How far were you at 3 hours?
- What needs to be finished/fixed for this to be use in a production app?
- What did you think of this challenge?
- What part was unclear?
- What could we do to make this challenge better?
- What did we forget to test you on?