Inspiration
I love watching sunsets, they are beautiful. So creating an app that predicts the most optimal days for a beautiful sunset during the summer is a no brainer. I wanted to create a smart weather app that does all the thinking for me.
What it does
A cosy aesthetic theme weather app that not only displays weather information, but uses that data to calculate what outdoor activity is best suited for these weather conditions. An app that could predict when there’s going to be a potential beautiful sunset. An app that suggests prime fishing times. These activities are suggested by taking into account rain predictions, cloud coverage, humidity and much more.
How we built it
I used Swift and Xcode to build this app. I also used the Open Weather Map API to fetch some data about the weather as well as this open source project for the graphs.
Challenges we ran into
- The first one was trying to display information in a graph. I wanted to display the temperature throughout the day in a way that is easy to understand. However, there is not much support for graphs in Swift and it took a long time to find a library that would work with my project. I discovered that there is Swift Charts still in beta that might get released with macOS 13. So I'm looking forward to seeing what that brings to the table. But for now, I used an open source project for the graph.
- The second was trying to switch views. I learnt about this NavigationView component in SwiftUI. But what that does is create a back button which I didn’t want. I had to use EnvironmentObject and an ObservableObject to keep track of the state of the app. There’s a button that acts as a toggle in which it toggles between these pages.
Accomplishments that we're proud of
Finished creating a working app that displays weather information for the current day, temperature graph and suggested activity.
What we learned
This is my first time developing and app so I learnt a lot about Swift and how to use XCode.
What's next for Better Weather
- The ability for users to manually select any location
- Weather information for a week ahead
- Interactive display of information, users can hide and open the additional weather information
Log in or sign up for Devpost to join the conversation.