Inspiration ✨
The idea for AnyMood came from my desire to better understand my own emotions. I realized how deeply our moods are connected to our health and daily habits. However, I couldn’t find a tool that allowed me to consistently track and analyze this. That gap sparked the creation of AnyMood.
What it does 🚀
AnyMood helps users record their daily moods, visualize them on a map and calendar, and gain long-term insights into their emotional patterns. With HealthKit integration, it also connects mood data with health data, uncovering valuable correlations.
How we built it 🛠️
I developed the project entirely with SwiftUI.
- SwiftData for modeling mood records
- HealthKit for accessing health data
- CloudKit for secure synchronization
- WidgetKit for allowing quick mood tracking right from the home screen
Challenges we ran into ⚡
- Fetching multiple HealthKit data types in parallel
- Making iCloud synchronization robust and error-free
- Maintaining UI performance when handling large datasets
- Complying with App Store legal requirements (e.g., WeatherKit attribution)
Accomplishments that we're proud of 🏆
- Designing a clean and user-friendly interface
- Successfully combining health data and mood tracking in one ecosystem
- Making mood tracking accessible with WidgetKit integration
- Publishing my first independent iOS app on the App Store
What we learned 📚
This journey taught me not only technical skills but also the importance of product design and user experience. I gained deeper expertise in SwiftUI, SwiftData, CloudKit, and HealthKit. I also learned how critical optimization and user-centered design are to a product’s success.
What's next for AnyMood 🔮
Next, I plan to expand journal features within AnyMood. Users will be able to write daily reflections alongside mood entries, creating a more personalized emotional tracking experience. Advanced analytics, AI-powered suggestions, and social features are also on the roadmap.
Built With
- healtkit
- swiftdata
- swiftui
- weatherkit
Log in or sign up for Devpost to join the conversation.