Inspiration

Living in Vancouver, I’m always at the beach during summertime — whether it's swimming, paddling, or just hanging out. The tides here are pretty dramatic, with water levels shifting quickly. You can set up your towel, and before you know it, you’re racing to move everything because the tide has crept up the sand. I also noticed that some beaches are best enjoyed at certain tides — some are only accessible during low tide, while others are great for swimming at high tide without dealing with sharp shells and pebbles. That’s what sparked the idea for Beachy. I wanted an app that could help people visualize the tides and weather in a way that felt like you were already there, standing on the beach.

What it does

Beachy gives you a simple, visual way to understand the tides at your chosen beach. You can see how much time is left until the next low or high tide, and exactly where the water level will be. One of the coolest features is the ability to "play through" the day and watch how the tide changes in real-time. As the tide moves, the weather conditions and even the sun's position in the sky evolve too, so you don’t have to rely on just the text or numbers—Beachy gives you a full experience of the beach throughout the day.

How we built it

Beachy is built entirely using Swift and SwiftUI. I used third-party APIs to pull in real-time tide and weather data, ensuring it reflects current conditions as accurately as possible. For the UI, it’s all done in SwiftUI, which helped bring the interactive elements to life. I also integrated SwiftData to let users save their favorite beaches for quick access, and for managing subscriptions, I of course used RevenueCat and hooked up pre-built paywall to make for speedy development.

Challenges we ran into

The biggest challenge was working with third-party APIs. Some initially seemed perfect, but once I tested the data, I found they were either inaccurate or inconsistent. This led to a lot of trial and error, swapping out APIs, and recalibrating the entire app’s data backend. It was frustrating and time-consuming, but I eventually landed on two reliable APIs that provided the accurate tide and weather data I needed.

Accomplishments that we're proud of

The vision for Beachy was to make beach tides feel intuitive and interactive, and I think I’ve delivered on that. The water animations really bring the tide changes to life. But what I’m most excited about is how I got the sky and sun to move, scale, and change colors with the time of day, making the whole scene feel alive. I also added star constellations to the night sky that change each time you view them, much like the real night sky, adding some extra logic to make sure they never clutter important UI elements like the weather data.

What we learned

This project taught me just how powerful SwiftUI can be for building real-time, responsive applications. From colors and layout to data calculations and text updates, everything in Beachy responds to changes as you adjust the time, and I learned how to finely control which elements animate and how. It’s been a fun challenge to make those animations smooth and true to life, ensuring that the app feels just as dynamic as the real-world environment it's representing.

What's next for Beachy - Beach Tides & Weather

Beachy helps users visualize tides and weather, but the next step is to bring that to your home screen. I’m working on creating widgets so users can have quick, at-a-glance information about their favorite beaches. I’m also brainstorming ways to incorporate more elements of the beach environment into the app, so stay tuned more features that will make you feel ever more connected to the beach life.

Built With

Share this project:

Updates

Submission history