Short Explanation
Rise & Shine is an iOS app built with SwiftUI that wakes you up with the sunrise. The app uses your location to determine the time of sunrise and allows you to decide how long before or after sunrise to wake up each day. Users then set a target number of hours of sleep each night. Rise & Shine then calculates the optimal time to sleep and wake you up each morning, ensuring you wake up feeling refreshed and energized and get the most sunlight out of your day.
Demo Video
Here is a short video demo of the Rise & Shine app and its features:
Motivations
I created Rise & Shine to solve a problem I had in my own life. I wanted to maximize the amount of natural light I got each day to improve my sleep quality and circadian rhythm. I found that waking up with the sunrise helped me feel more alert and energized throughout the day, and I wanted to share that experience with others. I also wanted to learn SwiftUI and build an app that combined my interests in health and wellness with my interest in learning native iOS development.
Tech Stack Used
- SwiftUI: a modern way to build user interfaces across all Apple platforms, used to create the front-end of the Rise & Shine app. I chose SwiftUI for its ease of use and flexibility, as well as its support for declarative syntax and live previews to help me quickly build and test my UI.
- SunriseSunset API: a free API that provides sunrise and sunset times for any location in the world, used to determine the time of sunrise for the Rise & Shine app. I chose the SunriseSunset API for its comprehensive coverage and accurate sunrise data.
Features

- Geolocation: Automatically determine your location to calculate the time of sunrise each day.
- Sunrise Offset: Choose how long before or after sunrise to wake up each day.
- Sleep Calculator: Set a target number of hours of sleep each night to calculate the optimal time to sleep and wake up.
- Wind Down Reminders: Receive notifications to start winding down before bedtime to improve sleep quality.
- Sunset Calander: View a calendar of sunrise and sunset times for your location to plan your day around natural light.
- Custom Alarm Sounds: Allow users to choose from a variety of alarm sounds to wake up to.
Future Features
- Sleep Tracking: Integrate with HealthKit to track sleep patterns and provide insights on how to improve sleep quality.
- Sleep History: Allow users to view their sleep history and track improvements in sleep quality over time.
- Sleep Sounds: Add a library of soothing sounds to help users fall asleep faster and stay asleep longer.
- Apple Watch Support: Create a companion app for Apple Watch to provide sleep tracking and alarm functionality on the go.
- Automatic Alarm Permissions: Currently the user must manually allow the app to play sounds in the background. This could be automated with a system prompt.
- UI Improvements: Add more customization options for the user interface, including themes and color schemes.
What I Learned
Building Rise & Shine was a great learning experience for me. I learned how to use SwiftUI to create a modern and intuitive user interface, as well as how to integrate with external APIs to provide real-time data to the user. I achieved my goal of building an app that combined my interests in health and wellness with my interest in learning native iOS development, resulting in an app that I use every day in my own life.