Coding Creatively with... Pebble?
Tags: wearables, pebble, c, showdev
Published: 2017-11-24 21:32:32

---
title: Coding Creatively with... Pebble?
published: true
description: Creativity on your wrist never felt so good
tags: #wearables, #pebble, #c, #showdev
cover_image: https://raw.githubusercontent.com/jvarness/screenshots/master/pebble_capture.png
---

I have a confession you guys... All of last year when I wasn't writing Java code... I was writing watchfaces for my Pebble Time. In fact, I love writing watchfaces for my Pebble so much, that I created a [submission](https://github.com/jvarness/cerner-2-to-the-5th/tree/master/C) for a programming competition that was a watchface!

I know what a lot of you guys might be thinking:

* Pebble isn't a company anymore since [Fitbit bought them](https://blog.getpebble.com/2016/12/07/fitbit/).
* Smart watches are a dwindling fad.
* Your Pebble isn't going to work after this year.

While all of those thoughts have their own merit, Pebble will always hold a special place in my heart for one reason and one reason only:

__Pebble watchfaces allow me to code creatively!__

My journey first started with trying to write an [analog watchface](https://apps.getpebble.com/en_US/application/56b67e70f17b7944f0000041). I just wanted to be able to draw arrows on a watchface, so I did! While I liked [writing the code](https://github.com/jvarness/arrowhead), there were a lot of things that I didn't like about this watchface:

* It was hard to read because I didn't put any landmarks on the watch to tell you which hour you were on.
* It was hard to find a color combo that looked good. The user was able to pick between 3 different colors for the hour hand, minute hand, and background, and there are only 64 colors you could choose from.
* It came with a battery indicator, but it was sort of ambiguous if you didn't read the description, and it wasn't exact.
* It used one of the default fonts that the watch came with, so it didn't look very unique other than the fact that it was so hard to read the damn thing half the time.
* Other watchfaces did awesome stuff like telling you the temperature, your step count, and the date, all of which Arrowhead didn't do.

I took all of these frustrations out on my next watchface that I called [Sessions](https://github.com/jvarness/sessions). This watch allowed you to configure two different colors instead of 3, and it showed you the step count and the weather, and it used a cool looking font called Lobster that I downloaded from Google Fonts. This watchface was a lot more [popular](https://apps.getpebble.com/en_US/application/570da5e6b175cfd32d000007?section=watchfaces), and I was pretty proud of myself!

On the eve of Pebble's 3rd successful Kickstarter, I wrote a much simpler watchface called [Kota](https://apps.getpebble.com/en_US/application/5802492988277fe07a0000bf?section=watchfaces), that featured another font that I downloaded from the internet, and a battery indicator. This watchface ended up being a lot simpler, both in user experience, as well as [to write](https://github.com/jvarness/kota).

We're now a year or so removed from Pebble being bought out from Fitbit, and I really miss writing watchfaces. The fact that it took only a couple hundred lines of code and very little testing in order to _express myself_ was always so appealing to me. I loved how each watchface was different, how each had it's own unique way of communicating different information to the user, however ambiguous or clear it was for the user to understand.

I also loved being able to write code in C that wasn't absolutely terrible like most of my C homework assignments from college ended up being (I missed the lesson on `malloc`, `calloc`, and `realloc`, and I suck at pointers).

Have you guys ever written anything for Pebble? What about things for other wearables? What were your favorite moments from developing those things?