The timer has an outer circle that shows how much time is left proportionally to the original. Number in center displays exact amount.
The main screen.
Can cancel a countdown before it ends of course.
The simple timer interface. The user increments the timer simply using the side buttons for plus and minus, then uses select to switch unit.
What it looks like if the timer reaches its end.
What the text message looks like. This could be customized by user eventually.
We were intrigued with the idea of developing an app for a smartwatch, since it is such a different field compared to traditional app development. The simplicity of design and the pure accessibility of applications for wearables caught our collective eye, and with two members of the team already owning and experiencing the simplicity of a smartwatch, we set our minds to developing an application that could challenge our most experienced member while also helping to build the skills and problem solving abilities of our less experienced teammates.
What it does
The main functionality of our application is to serve as a backup plan or a failsafe for a user who acknowledges the possibility of a dangerous situation somewhere in his or her immediate future. Our user is able to set a "failsafe" timer for a specific length of time in which they could foresee a possible unfavorable outcome, such as walking through a certain neighborhood after a late-night shift. At any point during this timer's descent, if the user feels as if there is no longer a threat, the timer he or she set can be cancelled and nothing happens; however, if the user fails to cancel the timer due to some external threat or unforeseen misfortune, the app automatically sends out an alert to this user's pre-determined emergency contacts. This message describes the situation and suggests that the user may be in need of immediate help; as such, the user's last recorded GPS coordinates are provided to aid in the location of the user if need be. The application also has a so-called "panic button" functionality, where the message that would usually be sent upon the expiration of the timer would be sent immediately. (While we currently do not support adding of custom phone numbers, we plan to do this with an android app; we simply did not have time to do both an android app and pebble app. The app does, however, currently support the previously described messaging aspect—it just has a hardcoded phone number to which it sends the alert.)
How we built it
We built the app using CloudPebble, Pebble's online cloud based IDE. The language we created with was the pebble.js framework which is based on node.js.
Challenges we ran into
We ran into quite a few challenges, from just getting pebble to setup and compile, to issues with REST endpoints and trouble finding adequate documentation. The primary problem we ran into using Pebble watches was that they do not support third-party access to send out a text from a user's phone to a user's contact. Not having support for texting natively led us to a search for a web based SMS service. We chose to use Twilio, as their website ended up really impressing during their pre-hacking demonstration, and using it was pretty fluid as well. We successfully set up a REST endpoint to which we simply had to make a POST request using Pebble.js, and this succeeded in sending a text message to whichever phone number it was passed.
Accomplishments that we're proud of
What we learned
What's next for Watch My Back
As previously mentioned, our first priority is the development of at the very least an android companion app for our Pebble application. While we will support functionality for the user to manually input emergency contact numbers using the pebble's buttons, an android app would let the user enter phone numbers with ease, or even select one from the comments. We could even add the capability to send reports out via email, in case the user doesn't have a contact point or they simply wish to track a stolen device without sending out alerts that could unintentionally describe a situation as potentially life-threatening.
We'd also love to eventually add features that would prove vital in situations where, say, the user's phone and watch were stolen. Ideally, we'd like to have the watch consistently (send out/push) out GPS coordinates to the emergency contacts of the user, which would prove extremely beneficial in the rare case of a kidnapping, or the more common occurrence of assisting in the location of a stolen device.
In summary, we created an app for pebble smart watches that could be considered a "smart" panic button. Most panic buttons require a user to pull out their phone or watch in times of distress but there might not be time to do that. With our app the panic button is constantly running and rather than needing to be initialized and then activated, it simply needs to be shut off or pressed within the already running app.
Thank you for looking at our app! We'd love to show it off more in person.