Friday, October 30, 2020

My Toothbrush Timer App

It's been a long time since I started a new LiveCode project. Well, the truth is that I've been very preoccupied with my Q sort project for the past year. Fortunately, my "Lloyd's Q Sort Tool" app has been quite stable for some time now. I've only been making small tweaks to fix small bugs and to add various improvements. So, I've been wanting to do something completely different and have some fun doing it. 

Fortunately, I'm teaching a doctoral course this semester on the topic of design thinking. One of the books we've been reading is Creative Confidence by the brothers Tom and David Kelley. David is one of the co-founders of both the IDEO design company and the d.School at Stanford University. Here's the full reference: 

Kelley, T., & Kelley, D. (2013). Creative Confidence: Unleashing the Creative Potential Within Us All: New York: Crown Business.

I've been using this book for a few years in my teaching and it get great reviews from students. The book's main theme is to inspire everyone to believe that the ability to be creative is in all of us. Rereading the book for the umpteenth time always puts me back into a very creative design mood. The book encourages you to look around for design problems, challenges, and opportunities - big and small. You can't help but to look around your personal world to see things you otherwise take for granted.

Last Sunday, I was reading the book in preparation for class on Monday. So, I was thinking about design a little later on as I was brushing my teeth. Suddenly, an idea hit me. I have an older Oral-B toothbrush that I bought about 10 years ago at the recommendation of my dentist. This battery operated toothbrush has a built-in timer that runs the motor for two minutes - the recommended amount of time to spend brushing one's teeth. In order to make sure I brush evenly - north and south - I've developed a habit where I carefully monitor my Casio wristwatch's stopwatch as I brush to make sure I switch from my lower to upper teeth precisely from time to time in order to brush evenly between both. It suddenly dawned on me that it would great to have a timer app with audio prompts that allow me to punch in various time intervals for a bunch of reminder chimes. The timer option on my iPhone's clock app doesn't meet the need because I need a reminder at each intermediate interval without having to touch the phone (given that my hand is covered in toothpaste "runoff"). My first thoughts of how to design a timer app with the option to add flexible intervals began that moment. 

I also thought of other uses for such a timer app. For example, a favorite exercise of mine is to walk briskly for two or three minutes followed by jogging for two or three minutes. It would be great to have a timer that would sound a chime at two minutes, then three minutes later, and then repeat the sequence. Another use would be when I'm making a presentation in class or at a conference. If my presentation lasts 15 minutes, it would be nice to get a reminder at the 10 minute mark, then three minutes later, then one minute later. And, if I'm presenting with multiple people, the app can signal when the "torch needs to be handed" over to the next presenter.

I quickly created a mock-up using LiveCode. My goal was to show my design thinking students a visual example of my design idea - the first prototype. This first version had no functionality, but it provided a nice visual representation of what I was doing:

This took about 30 minutes. Although the screen looks a little busy, those smaller buttons below the "Start" button would actually come and go as needed for a clean design. As I created this mock-up, the need for those button functions became clear, so adding them acts as notes for my next iteration. For example, the "Stop" button would replace the "Start" button when the app was running. A "Pause" button would also need to appear as soon as the "Start" button was pressed and would be replaced with a "Resume" button when the "Pause" button was pressed. (Honestly, I don't remember why I thought I needed the "Restart" button.) So, all of these are "placeholder" buttons that I'll integrate into the design at some point.

Beginning to Code

On Monday, as I was finalizing my class lesson plans, I couldn't help but start to code some initial functionality into the app. I started by coding how to start and stop a timer using "the seconds" function in LiveCode. This also required me to relearn how to set up a repeating loop in the background while the user interacts with the app, something I learned years ago in one of my earlier gaming/simulation projects. But, I'll save any details about coding for my next post. The main point here to celebrate finding a problem to be solved and beginning to design a solution that offers ways to improve many other problems as well. That's the great thing about design thinking -- even small design ideas are valued. You never know where they might lead. 

Final Thoughts

This is actually a mobile app I could use. I don't plan on keeping the "toothbrush" title, but it's a fun title to keep for now. (I've always struggled with choosing good app titles.) It has also been a long time since I created a mobile app, so I thought this project would also be a good way to reacquaint myself with the process, particularly on the all-to-complicated Apple iOS side.

Oh, one more thing ... I've since learned that the newer Oral-B toothbrushes models now have a 30 second chime reminder. Maybe it's time I buy a new toothbrush.

1 comment:

  1. It's wonderful that you are blogging again! I really enjoyed reading this and a few of your other entries.