Blog of Geof

Hello! My name is Geof. I am a freelance interactive designer with over eight years of experience. I like to make nice apps and websites. I'm currently living in Salt Lake City, Utah. Sometimes I write about things that interest me here.

Suggested Reading
Air Lookout 1.4: All The Complications
Hello freelance!
Kawasaki KLR 650 Rebuild Compilation
On The Web
Portfolio, Twitter, Strava, Dribbble, Behance, LinkedIn, Instagram, and Email

Thursday, April 4th

Using Drag and Drop with NSTableView #

Nate Thompson (via mjtsai via danielpunkass):

I recently tried to implement drag and drop with NSTableView in a project and ran into a bunch of issues with finding resources that actually helped. Such is the life of a Cocoa developer. So here’s my attempt at the definitive guide to drag and drop with NSTableView. (This should also apply to NSOutlineView, since they work in a similar way.)

This is perfect. With a lot of history, it's sometimes hard to find the “correct modern” approach to certain Cocoa features. I will be referencing this a lot.

Tuesday, March 19th

Tools For Accessibility #


Colors that look and work great for everyone


The plugin to help you design and build products that are accessible, ethical, and inclusive.

There’s no reason for 97.8% of websites to have WCAG errors. A variety of tools are available to help designers make the right decisions. These two were just shared with me today. Both look pretty useful for improving contrast and color selection. My only wish is that didn't use Raleway.

Via @camronsackett.

Thursday, March 14th

The WebAIM Million #


In February 2019, WebAIM conducted an evaluation of the home pages for the top 1,000,000 web sites using the WAVE stand-alone API (with additional tools to collect site technology parameters). While this research focuses only on automatically detectable issues, the results paint a rather dismal picture of the current state of web accessibility.

The entire report is posted on their website.

Monday, Feb. 4th

Undo And Redo On iOS #


I would’ve bet my house — because even if you’ve never even heard of Pixelmator, you of course know how to invoke Undo and Redo in any Mac app: Edit → Undo and Edit → Redo, with the shortcuts ⌘Z and ⇧⌘Z. In fact, even their placement in the Edit menu is always the same, in every Mac app: the first two items in the menu.

iOS does in fact have a standard convention for Undo, but it’s both awful and indiscoverable: Shake to Undo

Personally, if I were designing an iOS drawing app I’d go the first route, and follow Apple Notes’s lead with “⟲” and “⟳” buttons.

Think about that: iOS user interface conventions are so shallow, so widely and wildly inconsistent, that an app proclaimed by Apple as the very best of the year has to start, as the very first thing you see when you launch them, by teaching you how to use Undo. That’s a sad state of affairs.

Consistency is my favorite thing about mac apps. A good mac app feels like a mac app. iOS, on the other hand, is a design and interaction playground (jungle? smorgasbord?).

I think some of this is because iOS was so limited interaction-wise when it first came out. Therefore, every designer and design team came up with their own creative solutions to extend the interactions on iOS. I also think it has to do with how software design has come to prioritize uniqueness* (sometimes above all else). The amount of bespoke design in an iOS app is much higher than mac apps. Often, this can confuse users (including me).

Procreate Blog:

We think Procreate's Undo gesture is one of the best things we've ever made. Apple highlighted it as an exceptional user experience when Procreate Pocket was lucky enough to win iPhone App of the Year 2018, and it's one of our most beloved features. It's simple, fast, and takes full advantage of multi-touch.

It's also one of our most-stolen features (over a dozen apps and counting), and we're fine with that. In fact, we’re giving it away. Seriously. We've put together a sample project covered by the Simplified BSD License, which means you can add to or modify it as you wish.

Ok. I will. Github: ProcreateUndoGesture

*Uniqueness is something all apps should find the right balance of. But, perhaps, undo gestures are not the right place for this quality.

Friday, Feb. 1st

Air Lookout 1.4: All The Complications #

Living The Dream: On an evening run, checking the air quality and listening to Accidental Tech Podcast

The idea of having Air Lookout complications on the Apple Watch has been a dream of mine since complications on watchOS were announced. I have had a prototype complication working since the summer of 2016. However, I ran into some strange limitations, quirks or bugs where I couldn't get the complication to update as reliably as I wanted.

An Air Lookout complication is unusually demanding in that there's a fairly large amount of background tasks that it has to do (ideally once an hour as that's when new readings are published by the Environmental Protection Agency), namely:

  • Update the user's location
  • Send a network request to update the air quality readings
  • And of course: update the UI/complication

I needed this to happen reliably without draining battery or degrading performance of the watch. I also wanted all of this to happen independently of the phone.

While it's still not guaranteed that any of these events will be triggered at a regular interval (documentation suggests at least 50 updates per 24 hours), it's a huge improvement over watchOS 4 and 3. I may go further into the technical details on another post, but prior to watch OS 5, it wasn't reliable enough for me to promise and ship this to users.

This is no longer the case. This is now all possible and, from what I have seen, reliable on watchOS 5. I have been testing these Air Lookout complications every day since the watchOS 5 beta was released at WWDC 2018 and I’m pretty happy with the results.

Four Examples of Air Lookout Supported Complications

Air Lookout supports every complication in watchOS5. There are 11 different complications in watchOS 5 and Air Lookout supports all of them. Additionally, many of the complications that support an image I dynamically draw a sparkline graph. For complications that don’t support an image, where there is space, I draw a unicode arrow to indicate if the air quality is trending up, down or staying the same. I have tried to have the information density as tastefully high as possible.

Here are all the supported complications:

  • Modular Small (supports: Sparkline Graph)
  • Modular Large (supports: Sparkline Graph)
  • Utilitarian Small (supports: Trend Arrow)
  • Utilitarian Small Flat (supports: Trend Arrow)
  • Utilitarian Large (supports: Sparkline Graph)
  • Circular Small (supports: Trend Arrow)
  • Extra Large (supports: Sparkline Graph)
  • Graphic Corner
  • Graphic Bezel
  • Graphic Circular
  • Graphic Rectangular (supports: Full-Color Graph)

In short: every watch face that supports 3rd party complications will support an Air Lookout complication.

Air Lookout Graphic Rectangular Complication

Graphic rectangular is the best complication for power users. This is the complication that I use every day. The thicker white line represents the Air Quality Index and the thinner light lines show the AQI of each individual pollutant. This has been really helpful to see if a change in AQI is due to improved conditions or temporarily missing measurements for pollutants (as shown in the first screenshot above). Most important to me is seeing if my local station is showing a change in air quality and the integrity of the reporting data.

Air Lookout WatchOS App

A Brand New watchOS App

Until fairly recently, the watch hardware wasn’t fast enough to process and display all the data and information that the iOS app could. The biggest thing holding this back was always the original (Series 0) Apple Watch. With watchOS 5 only supporting Series 1 and newer Apple Watches, this has enabled me to build a much more robust and rich watchOS app.

In fact, the watchOS app has a few features (such as sparklines for every pollutant) that the iOS app doesn’t have yet!

Air Lookout iOS App 1.4

A Refined iOS App

There are a handful of iOS app refinements in Air Lookout 1.4. This is all in preparation for a fairly big rewrite that I hope to get a good start on in early 2019.

  • Improved legibility for station names and page titles on moderate (yellow) background colors.
  • Added clarity if a station is not reporting PM2.5 or O3.

From now on, Air Lookout will require stations to report both particulate matter small (PM2.5) and ozone (O3) to be in the top 10 ranking.

This update also brings support to all the new iPhone hardware.

I hope you enjoy the updates as much as I do. I use Air Lookout every day and a lot of these features either came highly requested from users or improvements I have wanted for awhile. I’m really excited to continue working on Air Lookout, supporting more devices and continuing to add and improve features.

You can download Air Lookout on the iOS App Store for just $0.99.

If you enjoy it, please consider leaving a review. It really does help me.