Mathew Reiss just released Snowy, the first true personal assistant for the Pebble Time. In this Dev Diner interview, he shares his experiences and advice on Pebble app development with Dev Diner in between putting the final touches on his watchapp!

What is Snowy and what made you decide to develop it for the Pebble Time?

Snowy, Mathew's personal assistant creation

Snowy, Mathew’s personal assistant creation

Snowy is the first true personal assistant for the Pebble Time series of smartwatches. I started working on the concept at this year’s Pebble Developer Retreat; I had just finished my translation app (Vox Populi) and wanted to do something more with the newly released Dictation API. “Snowy” was originally just a calculator, all written in C, but then I moved the text parsing and processing to JavaScript (the Pebble SDK allows you to use both) and suddenly the floodgates were open – any API I knew how to use could be tapped into, all through voice commands. At the end of the retreat, I think I was already able to demo weather information and football scores in addition to basic calculation. It’s just kept growing since then.

How long have you been developing for the Pebble Time? Did prior experience with other app development help with building Snowy?

I’ve been developing for Pebble since January of last year (2014). I would definitely say that my experience with other apps has helped play a role in things like refining the UI and testing/debugging, but the core concept of Snowy (natural language processing) was entirely new to me. I feel good about the approach I’ve implemented though, as it allows me flexibility to add new commands and features quite easily. One of the biggest challenges to developing for Pebble is the limited screen size – you really have to be intentional about every pixel you draw. I think having a good familiarity with the platform and its limitations was the biggest asset for me with Snowy.

What skills would you recommend for developers considering getting into Pebble development?

Well, first of all, I really can’t emphasize enough how useful the Pebble development docs are. Chris Lewis and crew have done a great job making them easy to read and the code examples are always helpful. Additionally, whenever a new feature is added to the SDK (magnetometer, colour screen, microphone, round screen, text pagination… etc), I build a small sample app that utilises it, so I can refer back to my own code when working on another project.

I think there are two routes you can take to get into Pebble development. The first is Pebble.js, which lets you build basic watch apps using only JavaScript. Some find this a less intimidating path than the other route, which is to learn C for Pebble. However, Pebble.js limits you in a lot of ways and I see many developers reaching a point where they ask “can I do this in Pebble.js?” and the answer is almost always “nope, learn C”.

Speaking as someone with almost no formal training in computer science, I have to say C is not as scary as many make it out to be (at least for Pebble). Someone unfamiliar with the language is bound to get tripped up a little by * here and there or an occasional &, but it’s easy to power through and the developer community is the most helpful/supportive I have ever seen.

Have you been looking into AI? Do you have any recommended resources for learning AI?

Early into development for Snowy, I explored the idea of integrating something like wit.ai. I stopped because it seemed like overkill to me. I was going to spend so much time “training” my Wit AI instance with “intents” and “entities” and whatnot, I’d rather just build my own (fairly simple) natural language processing into the app. The benefits to this are that I can tweak existing functionality and add new functionality fairly easily, and that the processing happens reasonably quicker (all JavaScript for Pebble is processed locally on the connected smartphone, rather than sending a request to wit.ai’s servers and waiting for a response).

AI is a really fascinating concept, and one that’s gotten more attention lately as Siri, for example, finds its way into more devices. Some resources that I’d recommend for those who are curious are Alan Turing’s original paper on “thinking” machines, some of the more recent editorials on driverless cars and “ethical” AI, and, on the fun side, 2001: A Space Odyssey, Bladerunner, and anything (book or movie) by Isaac Asimov.

What is your personal favourite Pebble app apart from Snowy?

I really like an app called EuroFootball, by Carl Braunstein. It has data on tonnes of leagues, and has some of the best (and most intensive) integration into the new Timeline feature for Pebble that I’ve seen. Plus, the UI is efficient, showing me the basic info that I need in black and white, and not getting distracted by lots of colours or anything like that.

Any final words of advice for aspiring Pebble developers out there?

Make lots of apps! Resources like CloudPebble (Pebble’s free online IDE) make it super easy to get started writing code. And when you need help, the forums and Slack channel are overflowing with people willing to assist. Sure, not everything you do will be a hit, but the more experience you have, the better you’ll get.

A very big thank you to Mathew for taking the time to chat about Snowy whilst busily preparing for its release! You can find his personal assistant Pebble app at mydogsnowy.com. You can find out more about him and the ways you can contact him over on the Snowy developer page.

Thanks for reading! Dev Diner is a new hub for developers keen to keep up with emerging tech.
Know others who might want to read it too? Please like and share this post with them!

Would you like to republish this article in your own publication?
Contact Dev Diner to request official republication of this article.

Leave a Reply

Your email address will not be published. Required fields are marked *

Want more?