Stylish weather app made with SwiftUI. The data is provided by OpenWeatherAPI. In the build, I've used:
- Networking with JSON and API;
- Lottie Animations;
- MVVM pattern;
- CoreLocation;
- I used an animated gradient as a background using
.hueRotation()
; - Added a custom SearchBar with controls and smooth animation to improve UX;
- Added a custom font to match the design pattern;
- I combined Lottie animations and SF symbols. Lottie is displayed on the Featured Weather while SF Symbols are used in "daily" and "weekly" sections.
- In the project, I took advantage of dividing the whole view into subviews. Say each element: Header, Featured Weather, 3 Widgets, Hourly and Daily forecasts.
- Instances of hourly and daily forecasts are created dynamically using view-building methods that return
some View
. - To display Lottie animation according to the fetched weather, I made a
func
with aswitch
statement that reads the weather condition code and returns a name of the Lottie Animation. Same has been done with SF Symbols.