WeatherApp

  • Used Xcode Version 14.2

  • Used MVVM with coordinator design pattern.

  • Swift Code for generating UI. Managing storyboard is tough within a team. Used XIB files for cell & Custom UI (They can be replaced if required/asked).

  • https://openweathermap.org/api used for city search and weather search.

  • App includes

    1. Search city screen: User can type any city name around the world. OpenWeather API used for retrieving city.
    2. Weather Detail screen: from searched cites. User can navigate to weather detail screen of any city.
    3. Saved City Screen: User can save city weather detail for offline mode from Weather detail screen. Swipe to delete for saved cities.
    4. Empty State: Implemented Empty states for Search City and Saved city screen.
    5. Switch between temperature units: User can switch between Kelvin, Celsius, Fahrenheit from Search city screen.
  • Test cases are written.

  • Use Of Combine framework for reactive programming and web service implementation.

Screen Shots

Screen: Change Unit

search_city_screen

Screen: Search City Result

search_city_screen_searched

Screen: Weather Detail screen with Save action alert (Plus button on Navigation bar)

weather_detail_screen

Screen: List of saved weather

saved_city_weather_screen