Alarm Clock v2
About 7 months after making my first alarm clock, I made a new one. I learned a lot from my first alarm clock, and I wanted to start over from scratch. I decided to make a new alarm clock because the last one was made with little concern for code quality, resulting in various bugs. This alarm clock was built in Ember because I wanted to get it going fairly quickly, and since I use Ember at work, I'm pretty quick with it. Here are some of the improvements from the previous version:
- Updated design. I think my new clock looks much nicer, and it even has an animated background.
- More usable UI. I had issues with the last clock where I would accidentally hit the "Stop" button instead of the "Snooze" button. I tried to remedy this by adding a confirmation when stopping the alarm, but it's not a very nice solution. The new alarm clock uses a short-press/long-press interaction on the entire screen. Touching the screen for less than 5 seconds results in a "Snooze" while touching the screen for 5 seconds or longer results in a "Stop."
- More simple alerting. A big goal of the last alarm clock was to provide random music for me to wake up to. I have not found this to be quite as wonderful as I had anticipated, and there are some serious difficulties in doing this. I was pulling songs from my FTP server, but it is difficult to catch the edge cases where the song doesn't load properly, resulting in the occasional silent alarm. I researched some alternatives, but didn't find anything concrete. That may be a project for another day. The new alarm just uses a single sound every time, which is downloaded by the user on page load.