Project Details
Name of the Solution
Snorly
Brief Description
Snorly is a smart sleep tracker and alarm clock app designed to help users wake up more easily and improve their sleep habits. The app tracks sleep duration and sleep quality during the night and presents the data in a simple and easy-to-understand way.
To prevent users from oversleeping, Snorly uses interactive puzzles that must be solved to turn off the alarm. These puzzles help wake up the brain and make sure the user is fully awake before the alarm stops.
Snorly is designed for students and busy people who struggle to wake up on time and want to build healthier sleep routines.
Team Members
- Pesendorfer Lukas
- Tuerk Laurens
Final Reflection
Pesendorfer Lukas
- Challenges: Choosing and correctly implementing the required Android permissions (especially around alarms/notifications and background behavior). Another major challenge was managing multiple UI states across different screens in Jetpack Compose and making sure they stay consistent when returning to the main screen. Finally, it was challenging to persist those states reliably by mapping them into SQLite (designing the right structure and ensuring updates were saved correctly).
- My Contribution: I implemented the full alarm feature, including alarm creation and configuration, and the puzzle/challenge-based dismissal flow. This includes the logic for triggering the alarm, handling the dismissal interaction, and connecting the related settings/state to the app’s data flow.
- Concept vs Final App: The final app matches the initial concept well: it combines sleep tracking with an alarm that uses interactive challenges to prevent oversleeping. The alarm-and-challenge interaction remained the core idea and is implemented as a working feature in the MVP.
- Possible Improvements: Add more challenge types (and more difficulty options) so users can choose what works best for them. Also add theme changes based on time of day (e.g., calmer night theme, brighter morning theme) to improve readability and overall experience.
Tuerk Laurens
- Challenges: A major challenge was debugging numerous edge cases and small bugs across complex features, including making sure the app is running on older android version. Specifically, handling the state management for the "Ringtone Composer" (recording notes vs. playback loops) required precise timing logic. Additionally, implementing custom AGSL Shaderss (e.g., the liquid/organic backgrounds) involved a lot of trial and error to ensure they rendered correctly without crashing on different devices.
- My Contribution: I was responsible for the core Sleep Tracking infrastructure, including the full integration of Google's Health Connect API and displaying the sleep data on the report screen. I also built the Ringtone Composer (allowing users to record custom melodies), the Report screen, and the entire App UI/Visuals. This included designing the custom Runtime Shaders (AGSL) that give the app its unique "organic" look, as well as the Onboarding flow. (Sleep, Report, settings, Health connect, Ringtones + Composer, UI, Design, Shader, onboarding, visuals)
- Concept vs Final App: The final app meets the core requirements of our initial concept. We successfully integrated the two main pillars: the tracking (my focus) and the waking up (Lukas's focus). The addition of the "Composer" feature added a layer of personalization we hadn't originally planned in detail, but it fits the concept perfectly.
- Possible Improvements: Future updates could include a specific mode for "Naps" (short duration tracking without affecting long-term stats). I also see a strong use case for a Wear OS companion app to handle tracking and alarm dismissal directly from the wrist.