Spencer Watson

Alarm Clock v2

Development Project

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.

To view the project working live, click here. This particular project is built to run on an iPhone5 in landscape mode. You can also see the source code for this project on GitHub.

This project uses: EmberJs , CSS , Design , HTML , JavaScript , Mobile , SVG , iOS , grunt , iPhone , Less , Git , GitHub , and Ember CLI

Your message has been sent!