Inspiration

The idea started with a simple thought: what if my music could match how I'm actually feeling right now? I realized that our moods are constantly shifting throughout the day—sometimes we need energy, sometimes we need calm, sometimes we just want to feel understood. But finding the right music for each moment felt like too much work. I'd spend more time searching for the perfect playlist than actually listening. I wanted an app that could cut through all that noise. Something that would just know what I needed to hear, playing music I'd genuinely connect with while still helping me discover new songs. Not an endless library that overwhelms you with choices, but a personalized radio experience that flows naturally from one track to the next, the kind you can't skip through because every song just feels right. That's how Mood Dial was born. A simple spin, a tap, and you're listening to music that matches your moment.

What it does

Mood Dial gives you instant access to music that matches your current state of mind. Simply spin the dial to choose from moods like Energize, Focus, Chill, or Unwind, then tap the center button to start playing. The app finds personalized songs using your Apple Music library, so you're always listening to songs you love while discovering new tracks that fit your taste. Each mood delivers a carefully curated flow of music that adapts to how you're feeling. Whether you need motivation for a workout, concentration for work, or relaxation after a long day. You can also create custom moods and build your own dials to match different parts of your life. Want a dial just for your morning routine? Or one for late-night studying? Mood Dial lets you design the perfect musical experience for any moment. The app even considers your activity, time of day, and energy levels to suggest the most fitting moods, making it effortless to find exactly what you need to hear. It's like having a radio station that knows you personally. No skipping required, just press play and let the music flow.

How I built it

Mood Dial is built entirely for iOS using Swift and SwiftUI, creating a smooth and native experience that feels right at home on Apple devices. At its core, the app integrates with Apple's MusicKit to tap into your Apple Music library and deliver personalized playlists. To understand your current state, Mood Dial uses HealthKit and the State of Mind API, gathering insights about your activity levels, sleep quality, and overall wellbeing to recommend moods that truly match the moment. For data persistence, I implemented CoreData to store your custom moods and dials locally, while CloudKit keeps everything synced across your devices. This means you can create a custom dial on your iPhone and seamlessly access it on your iPad. The dial interface itself was crafted with SwiftUI's animation capabilities, allowing for smooth, intuitive interactions that make selecting your mood feel natural and satisfying. Every spin, tap, and transition was designed to be responsive and delightful. The app's suggestion system analyzes various factors like time of day, your recent activity, energy levels, and listening patterns to surface the most relevant moods without being intrusive. It's all about making the right music feel effortless to find.

Challenges I ran into

This project took an unexpected turn that became both my biggest challenge and most valuable lesson. I originally built Mood Dial as a radio station app and had it ready to go. But at the end of July, I attended an Apple workshop and showed it to their team. They loved the design and concept but suggested I pivot to Apple Music instead. At first, I hesitated. It meant starting over. But the more I thought about it, the more it made sense. Radio stations are beyond my control, but with Apple Music, I could actually filter and curate the experience to create that infinite, personalized radio feel I was going for. So in early August, I made the decision to rebuild from scratch, racing against the ShipATon deadline. The problem? I'd never worked with MusicKit before, and it turned out to be incredibly challenging. Apple Music's search API is highly restrictive and often doesn't return the results you'd expect. The biggest hurdle was that the API doesn't understand moods at all. It's designed for searching artists, albums, and song titles, not feelings. I needed to figure out how to translate abstract concepts like "energize" or "unwind" into search queries that would actually return the right music. On top of that, I wanted the app to feel deeply personalized for each user without collecting any of their data. This meant building a small backend system that could find the perfect music for someone based on their mood and preferences, all while respecting their privacy completely. For the past two months, I've been obsessively fine-tuning the algorithm, testing different approaches, and refining how the app interprets and responds to moods. My average sleep dropped to about 4-4.5 hours a night because I was determined to get this right before the deadline. It was exhausting, but seeing the app finally deliver that seamless, personalized experience made every sleepless night worth it.

Accomplishments that I'm proud of

I'm incredibly proud that I actually pulled this off. Rebuilding an entire app from the ground up in just two months while learning a completely new framework felt impossible at times, but I did it. The biggest accomplishment is cracking the mood-to-music problem. Apple Music's API wasn't designed to understand feelings, but I found a way to bridge that gap. Building a system that can translate abstract emotions into the perfect playlist without collecting any personal data was technically challenging and something I'm genuinely proud of. I'm also proud of maintaining my original vision throughout the chaos. When I had to pivot from radio to Apple Music, it would've been easy to compromise on the experience or cut corners to meet the deadline. But I stuck with it. The dial interface, the seamless playback, the personalized recommendations everything I originally imagined made it into the final product. Getting positive feedback from Apple's team early on gave me the confidence to take that leap and rebuild. Their belief in the concept kept me going during those long nights of debugging and testing. Most of all, I'm proud that I shipped it. I could've given up when I realized how hard MusicKit was to work with, or when the algorithm wasn't performing well, or when I was running on four hours of sleep. But I pushed through because I believed in what I was building. Mood Dial is exactly what I set out to create a music app that just gets you.

What I learned

This project taught me that sometimes the best ideas come from being willing to start over. When the team at Apple India suggested pivoting to Apple Music, my first instinct was to protect all the work I'd already done. But I learned that holding onto something just because you've invested time in it isn't always the right move. Being open to feedback and flexible enough to change direction completely transformed this app into something much better than it would've been. I learned MusicKit inside and out the hard way. Wrestling with an API that doesn't work the way you expect it to forces you to get creative. I discovered that limitations can actually drive innovation. When the search API wouldn't understand moods, I had to think differently about the problem and build workarounds that ended up making the app more unique. I also learned a lot about privacy-first design. Building a personalized experience without collecting user data seemed contradictory at first, but it pushed me to architect systems differently. It's absolutely possible to create intelligent, adaptive apps while respecting user privacy you just have to be intentional about it from the start. On a personal level, I learned my own limits and how to push past them. Two months of 4-hour nights taught me about time management, prioritization, and what I'm actually capable of when I'm fully committed to something. I learned to break down overwhelming problems into smaller, manageable pieces and tackle them one at a time. Most importantly, I learned that shipping matters more than perfection. There were countless moments where I wanted to add just one more feature or tweak the algorithm a bit more. But there's a real deadline, and getting something out into the world that works well is better than endlessly refining something no one ever sees.

What's next for Mood Dial for Apple Music

Now that Mood Dial is out in the world, I'm excited to see how people actually use it and what moods matter most to them. User feedback will be crucial in shaping where the app goes next. In the near term, I want to refine the recommendation system even further. Two months of fine-tuning got me to a place I'm happy with, but there's always room to make the suggestions smarter and more accurate. I'm also planning to expand the preset mood library based on what users are creating custom moods for. If everyone's making a "Late Night Coding" mood, that tells me something. I'd love to add more customization options, like letting users adjust the energy levels of existing moods or blend multiple moods together for more nuanced experiences. Imagine a "Focused but Relaxed" mode that sits perfectly between two moods. Social features are something I'm considering too, nothing intrusive, but maybe the ability to share your custom dials with friends or discover dials that others have created. Music is inherently social, and there's potential there. Adding widgets, app intents and siri shortcuts support is definitely on the cards. I also want to look into working and releasing a mac version and watchOS version for the app. The dial UI will look absolutely stunning on watchOS. On the technical side, I want to keep improving how the app integrates with HealthKit and State of Mind data. The more contextually aware Mood Dial becomes, the better it can serve you without you having to think about it. But honestly, the biggest thing I'm looking forward to is rest. Then, with fresh eyes and real user insights, I can make Mood Dial into something even more special. This is just the beginning.

Built With

Share this project:

Updates