🌩️ Weather Watch

Introducing Weather Watch, the app that delivers accurate weather forecasts, ensuring you’re always prepared for the day’s weather with a smile!

This task is designed to evaluate your proficiency in mobile app development, particular with React Native and TypeScript.

🌩️ UI Video

Play the APP-UI-FlOW.mp4

Exercise

Create a mobile application using React Native that encompasses the following:

  • Display the location name, current temperature and an image representation of the weather using a location of your choice when the application opens.
  • Display a weekly weather forecast for the selected location.
    • Display an average temperature, rounded up.
    • Display an image that best represents the weather for the day.
  • Include a search function that allows users to look up weather by a location name.
    • If there are multiple locations returned by the API, give the user an option to select one.
    • When selecting a location, the weather forecast should update.

Resources

  • Use the Open Meteo API to obtain a weather forecast, changing the latitude and longitude where required. Don’t use any packages related to Open Meteo when interacting with the API.
  • Use the Open Meteo Geocoding API to obtain a latitude and longitude for a given location.
  • Use the helper function getWeatherImage to map between a WMO weather code coming from the Open Meteo API and an image representation of the weather.

Note: All APIs listed above are free to use without sign up.

Requirements

  • Create a fork of this repository.
  • Use React Native and TypeScript.
  • Ensure the app works on iOS and Android.
  • Showcase your software’s testing capabilities to ensure it meets requirements by testing:
    • One complex component.
    • One helper function.
    • One API request.
  • Ensure that your solution accounts for edge cases and handles unusual or unexpected scenarios effectively.
  • Don’t spend longer than 2 hours on this technical test.
  • Don’t focus too much time on the visual aspects of the app, favour simple layouts and basic styling using React Native libraries over using a UI kit.

Submission

Submit a link to your forked repository with your application contents. Make sure the link is accessible.

Happy Coding