HomeSoftware

Pebble Sports

Pebble

A native sports app for Pebble-- get your favorite NFL, MLB, NHL, and NBA scores live on your wrist

Pebble AppstoreGitHub
Gallery

Rebirth

I bought my first Pebble Smartwatch right after the company went out of business. Honestly, if they'd stayed in business, I might never have bought one. My 10th grade self couldn't drop $250 dollars on the beautiful piece of hardware1 that is the Pebble Time Round. But I sure could buy one for $40 while they tried to purge stock on Amazon.

In the last few days of Pebble's existance, they turned over operations to a group of community members, called Rebble, that has maintained and restored the vast majority of existing Pebbles' functionality.

Defunct apps

In Pebble's heyday, big companies wanted their apps on a platform that might've been the next big thing. Uber. Foursquare. Yelp. GoPro. ESPN. These weren't just simple lists of data; they took the wonderfully whimsical Pebble design language and designed a great experience for a small screen. Unfortunately, these apps no longer work. Pebble went defunct, and with it, the API keys and authorizations required to keep those apps connected.

To develop those apps, those companies used the web-based Pebble IDE, CloudPebble. CloudPebble was (by all accounts) extremely convenient; developers could write code in their browser without thinking about installing toolchains, drivers, connections, any of that.

Rebble saved almost everything about Pebble, but not CloudPebble. The only remnant I had to work off of was the archived developer documentation for installing the Pebble toolchain locally. The archive wasn't great. Instructions were outdated; URLs were broken. At one point I had over 20 Wayback Machine tabs open. But bit by bit, I pieced the instructions back together, and finally, a blank new app showed up on the screen of my watch.

Having done all of this work, I decided to share my findings: Developing for Pebble without CloudPebble. Others have taken this tutorial and run with it, and there is a thriving Pebble developer scene these days, which I am extremely happy to have contributed to in small part.

Back to the app, though. The official ESPN app still exists, but doesn't work. The ESPN API it used was shut down years ago. Out of all the defunct Pebble apps, it was the one I most wanted back. But if you know where to look, there's a second, undocumented ESPN API. I found it. And immediately, I set about making a new, beautiful sports app for Pebble.

The making of Pebble Sports

It turns out, designing an app that fits not only a tiny screen, but a tiny, circular screen, is really hard. Luckily, Pebble has some built-in UI components that are extremely helpful for things like scrolling through a list of games. But designing the contents of that list, or the live score screen? That pushed a lot of boundaries in my thinking of the dimensions of an interface.

Design in hand, all I had to do was learn C. Before this app, I'd programmed in Java, and Kotlin, and JavaScript, and generally felt like I was settling into a rhythm where I could pick up a new language and understand it pretty easily. Oh boy was I wrong. Learning C was a whole new ballgame. Manually managing the memory my app had allocated? Blindside hit to my garbage-collected life of luxury beforehand.

But as I worked, the app started crashing less and less frequently, and I started to get a handle on the mysterious ways of C. NFL season rolled around, and despite some weird crashes, I decided it was good enough, and stopped working on it. But due to those crashes, I didn't officially release it. For years, it sat humming away on my watch, and my watch alone.

Hackathon and release

Fast forward to the end of 2022: Rebble announces it's first community hackathon. I figured if I was ever going to release Pebble Sports, now was the time. Armed with a better knowledge of C from university classes, I patched up the remaining holes, and submitted the app on the last day of the hackathon. It brought a close to the circle, from my first day with the watch, as Pebble was in the middle of shutting down services. Being able to contribute in a small way to the revitalization of Pebble development is something I'm really proud of and I'm excited to see where the community goes in the future.

1.

I love the Pebble Time Round. Does it have great battery life? No. Can you wear it in the shower? No. A big screen? Also no. But crucially, does it look like a regular watch? Yes. It's probably my all-time favorite piece of industrial design.

2.

Shoutout to whoever designed the original Pebble Sports app. Despite it being defunct, the screenshots were inspirations for my iteration, and helped push my thinking on how to display information at that small of a size.