Caution
This app was built for personal use, and was never intended to be published. I posted it here for historical curiosity purposes. It is not under active development.
It started with this Calvin and Hobbes comic from April 9th, 1995:
“Hoffa gud tay askool” and “heeryor lunboks” have become common phrases in our house. So when I decided to make a status board app for my wife an myself, calling it GudTay was the obvious choice. We had an old Retina iPad mini, which we mounted to the wall near the door:
Initial commit.
First mockup in Sketch. Referenced the MBTA style guide from 1977 (the newest available at the time), which included information on how to obtain a physical specimen of Helvetica.
Refined design, accounting for missing train times. Calvin makes an appearance.
Initial designs for the weather section. The idea is that the hourly forecast will include the color that the sky will be at roughly that time of day. Also includes the start of sourcing images of various weather conditions from Calvin and Hobbes comics. My wife, Cheryl, helped draw some custom conditions in the style of Calvin and Hobbes.
More custom icons from Cheryl.
Screenshot of the real app:
It includes:
- Departure times for four buses and trains that we were riding regularly at the time.
- A whiteboard for jotting quick notes that we would notice when walking out the door.
- Calvin. Tap him to show error logs. He is also joined by a hand-drawn analog clock that keeps correct time.
- The weather widget showing the color of the sky around sunrise.
Apparently, I spent New Year’s Eve building image syncing. We had ended up with another old iPad at some point, and decided to wall-mount it near the dining room table so we could see when buses were leaving while eating breakfast. I used Multipeer Connectivity to allow the iPads to connect to each other, and I wrote a super crude mechanism for them to sync images back and forth. I originally had aspirations for building it using fancy CRDTs like in Pixelboard, but it turned out to be way more fiddly than I was interested in taking on for a side project, so I just sent the whole image over the network every time it changed, and the most recent timestamp always wins. It works fine as long as two people aren't drawing at exactly the same time.
Thanks to some help from @jaredsinclair, I was able to make the whiteboard drawing much faster and more efficient. The trick is to set a layer’s contents
directly to a CGImage
made from a CGBitmapContext
. As long as you don’t modify the context before the frame renders, you get to avoid a copy of the buffer.
We’ve moved to a new house. Now we only care about one bus line, so we just show that. The whiteboard is larger. Between the weather conditions and the hourly forecast, Calvin carries an umbrella to indicate that it is going to rain during hours that we are likely to be out of the house.
Cheryl has been busy drawing more icons! Now Calvin dresses for the weather, and carries an umbrella when it’s raining (see example in previous screenshot). The image file names indicate the temperature range in Fahrenheit.
Added an offline view so we would know not to trust bus departure times if the iPad had fallen offline.
Adopted OpenWeatherMap API due to the deprecation of the DarkSky API I had been using previously.
We stopped using GudTay a few years back when it stopped being fun updating this old app for iPads that didn’t run past iOS 11 or 12, and when we started working from home. But when @armcknight asked if I had ever open-sourced this code, I got nerd-sniped hard and nearly pulled an all-nighter getting this into shape for publication. This included:
- Project cleanup for the first time since March of 2021.
- OpenWeatherMap doesn’t allow completely free accounts any more, so I migrated to Apple’s WeatherKit. It was surprisingly not that hard; the APIs have a very similar shape, at least for what I’m doing with them.
- Rebased the project to remove my OpenWeatherMap API key and the precise location of my home that I was using for the weather queries; now it’s centered on Boston.
Just for fun, here’s a video demo, which shows off two fun little animations that make me happy:
- The clock hands ticking.
- The tool switching on the whiteboard.
GudTay.mov
If you made it this far, hoffa gud tay askool!